我已经向我的 iOS 应用程序添加了一个共享扩展,并使用 UIViewController 创建了一个自定义 UI,而不是默认的 SLComposeServiceViewController。UI 工作正常,但我如何引用选择要共享的文件?例如,如果我在一张照片上点击分享,我如何引用该照片,并将其转换为 NSData。我目前有这段代码,但是当它运行时,数据似乎从未被初始化。我究竟做错了什么?
//Runs when button is pressed
inputItem = extensionContext!.inputItems.first as NSExtensionItem
attachment = inputItem.attachments![0] as NSItemProvider
attachment.loadItemForTypeIdentifier(kUTTypeJPEG as String,
options: nil,
completionHandler: {(content, error: NSError!) in
let url = content as? NSURL
if let data = NSKeyedArchiver.archivedDataWithRootObject(url!) as NSData?{
self.imageChosen = UIImage(data: data)!
//Never runs
}
else {
//Always runs
}
})
另外,当所选附件包含多个文件(照片或视频)或无效文件类型时,如何使扩展按钮消失。任何答案表示赞赏。提前致谢。