我正在创建一个Finder共享扩展名,以便在选择文件时使用。我想显示您正在共享的文件的图像预览(例如,您在消息和Twitter共享扩展名中看到的)。
在我的共享扩展的视图控制器的loadView方法中,我正在这样做:
let item = self.extensionContext!.inputItems[0] as! NSExtensionItem
if let attachments = item.attachments as? [NSItemProvider] {
if let attachment = attachments.first {
attachment.loadPreviewImage(options: nil, completionHandler: { (item, error) in
if error != nil {
//handle error...
} else if let img = item as? NSImage {
//put image preview in my "share sheet"...
}
})
}
}问题是,当我不断地碰到错误条件时。我得到的错误是:
错误的Domain=NSItemProviderErrorDomain代码=-1000“不能加载预览。UserInfo={NSLocalizedDescription=Cannot加载预览。}
值得注意的是,我am能够成功地调用attachment.loadItem()并处理该文件。但是我现在并不想对文件本身做任何事情,我只想要一个缩略图,它代表的是理论上这个方法应该给我的文件.
有什么想法吗?
发布于 2017-11-28 08:00:29
我也处于同样的情况。在阅读了手册之后,我想这就是原因所在。
“加载由项目提供程序表示的项的预览图像。”
但是,并不强制项目提供程序必须提供预览。因此,错误只是说明没有项目提供程序可以提供的预览。你应该自己去做。
https://stackoverflow.com/questions/46527135
复制相似问题