我想创建一个能够共享 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)
}
最佳答案
首先,你绝对不能以这种方式使用 NSURL(string:)
:你正在尝试在主线程上从网络下载文件。因此,您同步阻塞了主线程。那是被禁止的。正确下载(使用 NSURLSession)。
其次,您的代码包含两个解释标记 (!
)。这意味着“请让我崩溃!”如果确实发生了这种情况,你很难提示。如果您不想崩溃,请正确解开您的可选组件。
基本上,代码中的所有内容都是以惰性方式完成的。相反,正确地做事。
关于ios - 在 swift 中分享单个 gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38353276/