我在Swift应用程序中使用以下代码在Instagram上共享图像: @IBAction func instagramShareButton(sender:AnyObject){
p, page_id, post__in
func documentInteractionControllerWillPresentOpenInMenu(controller:UIDocumentInteractionController){ }
代码由Objective C翻译成Swift,因为我在Swift上找不到任何可以在Instagram上分享的内容。
菜单弹出,我在那里看到Instagram,当我点击它时,我收到以下错误:
断言失败 - [_ UIOpenWithAppActivity performActivity], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3505.16/UIDocumentInteractionController.m:408
***因未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因: 'UIDocumentInteractionController过早地消失了!'
我相信我不得不释放UIDocumentInteractionController对象。我对吗? 没有找到任何信息来帮助我理解我如何在Swift中做到这一点。请帮我弄清楚如何解决这个问题。
答案 0 :(得分:43)
我认为你是对的。 我有同样的问题。
在开始共享函数之前,必须从UIDocumentInteractionController创建一个全局变量:
var interactionController: UIDocumentInteractionController?
@IBAction func instagramShareButton(sender: AnyObject) {
...
interactionController = UIDocumentInteractionController(URL: fileURL)
interactionController!.UTI = "com.instagram.exclusivegram"
let msgBody = "My message"
interactionController!.annotation = NSDictionary(object: msgBody, forKey: "InstagramCaption")
interactionController!.presentOpenInMenuFromRect(rect, inView: self.view, animated: true)
}
这对我有用!