我想创建一个能够共享gif的应用。问题是,当我使用此代码时,应用程序崩溃并且不共享任何内容。我试着查看堆栈溢出的答案,但我一无所获。 我写下面的代码。这段代码有什么问题? 非常感谢!
@IBAction func shareAction(sender: AnyObject) {
let imageURL: NSURL = NSURL(string: "http://media.fyre.co/OM2K20rSJuMGATAFFXRK_6.gif")!
let imageData: NSData = NSData(contentsOfURL: imageURL)!
let objectsToShare: [AnyObject] = [imageData]
let activityVC: UIActivityViewController = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
self.presentViewController(activityVC, animated: true, completion: nil)
}
答案 0 :(得分:0)
首先,绝对不能以这种方式使用NSURL(string:)
:您正试图在主线程上从网络下载文件。因此,您同步阻止主线程。那是被禁止的。正确下载(使用NSURLSession)。
其次,您的代码包含两个解释标记(!
)。这意味着"请让我崩溃!"如果确实发生了什么,你很难抱怨。如果您不想崩溃,请正确打开您的Optionals。
基本上,代码中的所有内容都是以懒惰的方式完成的。做正确的事情。