【问题标题】:Share a single gif in swift快速分享单个 gif
【发布时间】:2016-11-16 03:15:15
【问题描述】:

我想创建一个能够分享 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)
}

【问题讨论】:

    标签: ios swift share gif


    【解决方案1】:

    首先,你绝对不能以这种方式使用NSURL(string:):你试图在主线程上从网络上下载一个文件。因此,您正在同步阻塞主线程。那是被禁止的。正确下载(使用 NSURLSession)。

    其次,您的代码包含两个解释标记 (!)。这意味着“请让我崩溃!”如果这正是发生的事情,你几乎不能抱怨。如果您不想崩溃,请正确打开 Optional。

    基本上,您的代码中的所有内容都是以懒惰的方式完成的。而是正确地做事。

    【讨论】:

    • 你也不能在iOS中以这种方式使用http:,除非你在Info.plist文件中做了安排。 iOS 默认需要https:
    • 好的,谢谢。我正确地遵循了第二部分。该应用程序不再崩溃。问题是我不能使用 NSURLSession: let imageURL: NSURLSession = NSURLSession(configuration: "media.fyre.co/OM2K20rSJuMGATAFFXRK_6.gif")
    • 这就是你现在使用 NSURLSession 的方式。学习使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多