我已经为我的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
}
})
此外,当所选的附件包含多个文件(照片或视频),或者是无效文件类型时,如何使扩展按钮消失?感激任何答案。提前感谢。
NSExtensionActivationRule
是什么样子? - Tom Harrington