2014-12-11 1 views
4

내 앱에 표시해야하는 파일의 미리보기 이미지를 가져오고 싶습니다. 여기 NSURL을 사용하고 있습니다 : 나는 아이 클라우드에 연결하고 경우에 잘 작동하고, URL을 아이 클라우드에 저장된 파일에 대한 링크입니다로컬 파일에 NSURLThumbnailDictionaryKey가 비어 있습니다.

NSDictionary *thumbnails = nil; 
BOOL success = [fileURL getResourceValue:&thumbnails 
              forKey:NSURLThumbnailDictionaryKey 
              error: &error]; 

. 나는 NSURL 로컬 파일을 가리키는와 동일한 코드를 사용하는 경우

file:///Users/me/Library/Mobile%20Documents/BJXXGLR9R3~com~myapp~icloud/FileStorage/contact-page%20copy.png 

은, 그러나, 미리 사전이 비어있는 경우 : fileURL은 같은 것입니다.

file:///Users/me/Library/Containers/com.mycompany.mymacapp/Data/Library/Application%20Support/com.mycompany.mymacapp/FileStorage/Bn4VaCnCUAEJjLb.png-large.png 

가 getResourceValue이 API는 로컬에 저장된 파일 작업 안가 : 여기

이 경우의 URL의 예입니다? 아니면 내가 잘못하고있는거야?

답변

3

이것은 API의 일부입니다. 또한 iCloud에서 오는 파일 작업 중에 파일 코디네이터를 사용해야합니다.

[url startAccessingSecurityScopedResource]; 

NSFileCoordinator *coordinator = [[NSFileCoordinator alloc] init]; 
__block NSError *error; 
[coordinator coordinateReadingItemAtURL:url options:0 error:&error byAccessor:^(NSURL *newURL) { 
    [newURL getResourceValue:&image forKey:NSURLThumbnailDictionaryKey error:&error]; 
}]; 

[url stopAccessingSecurityScopedResource]; 
+0

감사합니다. API가 작동하는 방식 (즉, getResourceValue는 iCloud의 파일에서만 작동합니다) 어디서나 문서화되어 있습니까? 나는 주변을 둘러 보았지만 어떤 확인도 얻을 수 없었다. –

관련 문제