Tôi có đoạn code dưới đây để chia sẻ hình ảnh trên instagram từ ứng dụng Swift của tôi: @IBAction func instagramShareButton (sender: AnyObject) {Swift sụp đổ wen khai thác “Open in Instagram” khi sử dụng UIDocumentInteractionController
let documentsDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
let path = documentsDirectory.stringByAppendingPathComponent("Share Icon.igo")
let imageName: String = "Share Icon.png"
let image = UIImage(named: imageName)
let data = UIImagePNGRepresentation(image!)
data!.writeToFile(path, atomically: true)
let imagePath = documentsDirectory.stringByAppendingPathComponent("Share Icon.igo")
let rect = CGRectMake(0, 0, 0, 0)
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0)
self.view.layer.renderInContext(UIGraphicsGetCurrentContext()!)
UIGraphicsEndImageContext()
let fileURL = NSURL(fileURLWithPath: imagePath)
print("fileURL = \(fileURL)")
var interactionController = UIDocumentInteractionController(URL: fileURL)
interactionController.delegate = self
interactionController.UTI = "com.instagram.exclusivegram"
let msgBody = "My message"
interactionController.annotation = NSDictionary(object: msgBody, forKey: "InstagramCaption")
interactionController.presentOpenInMenuFromRect(rect, inView: self.view, animated: true)
}
func documentInteractionControllerWillPresentOpenInMenu (bộ điều khiển: UIDocumentInteractionController) { }
Mã được dịch từ Objective C sang Swift bởi tôi, vì tôi không tìm thấy gì trong Swift để chia sẻ trên Instagram.
Menu bật lên, tôi thấy instagram ở đó và khi tôi chạm vào nó, tôi nhận được báo lỗi dưới đây:
Assertion failure in -[_UIOpenWithAppActivity performActivity], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3505.16/UIDocumentInteractionController.m:408
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UIDocumentInteractionController has gone away prematurely!'
Tôi tin rằng tôi bằng cách nào đó phải thả đối tượng UIDocumentInteractionController. Tôi có đúng không? Không tìm thấy bất kỳ thông tin nào để giúp tôi hiểu cách tôi có thể thực hiện điều này trong Swift. Xin hãy giúp tôi tìm ra cách tôi có thể giải quyết vấn đề này.
điều này có thể là cùng một vấn đề mà tôi phải đối mặt trong khi trở lại cố gắng làm điều tương tự. Tôi không bao giờ tìm thấy một giải pháp, nhưng đã có thể thực hiện một cách giải quyết thỏa mãn ứng dụng của tôi. Bạn có thể xem bài đăng của tôi ở đây: [link] (http://stackoverflow.com/questions/29065772/ios-uidocumentinteractioncontroller-launchservices-invalidationhandler-called) – Lavvo