cocoa – NSURLThumbnailDictionaryKey为本地文件为空

前端之家收集整理的这篇文章主要介绍了cocoa – NSURLThumbnailDictionaryKey为本地文件为空前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想得到一个我必须在我的应用程序中显示文件缩略图表示.我在这里使用NSURL:

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

如果我连接到iCloud,这可以正常工作,URL是指向存储在iCloud中的文件链接. fileURL类似于:

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

但是,如果我使用指向本地文件的NSURL使用相同的代码,则缩略图字典为空.

以下是此案例中URL的示例:

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

这个getResourceValue API是不是应该与本地存储的文件一起使用?或者我做错了什么?

解决方法

这是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];

猜你在找的cocoa相关文章