gpt4 book ai didi

ios - UIImage 下载返回 nil 并导致应用程序崩溃 (Swift)

转载 作者:可可西里 更新时间:2023-11-01 01:05:52 25 4
gpt4 key购买 nike

我有一个图片 url 字符串:

var remoteImage: String = "http://server.com/wall-e.jpg"

然后我使用 Grand Central Dispatch 构建一个 UIImage 以在单独的线程上下载,并将 remoteImage 作为 NSURL 字符串参数:

let getImage = UIImage(data: NSData(contentsOfURL: NSURL(string: remoteImage)!)!)

当它完成并返回主线程时,我将它保存在内部:

UIImageJPEGRepresentation(getImage, 1.0).writeToFile(imagePath, atomically: true)

在 Wi-fi 和 LTE 上下载正常,但在测试边缘情况时,例如在边缘网络上(无双关语意),我不一致得到错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

现在我想通过添加确保它不是 nil 是安全的:

if getImage != nil { ... }

但似乎并没有什么不同。它仍然得到错误并突出显示 let getImage 如上所述。我在这里做错了什么?我应该以不同的方式或方法检查 nil 吗?

最佳答案

我建议您使用AsyncRequest 来获取和下载图像并将其保存在本地。因为您没有发布任何问题代码。所以我发布了一个为我工作的示例。

Sample for downloading and saving image locally

    var url = NSURL(string : "http://freedwallpaper.com/wp-content/uploads/2014/09/Tattoo-Girl.jpg")

let urlrequest = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(urlrequest, queue: NSOperationQueue.mainQueue(), completionHandler: {
response ,data , error in

if error != nil
{
println("error occurs")
}
else
{
let image = UIImage(data: data)

/* Storing image locally */

var documentsDirectory:String?
var paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
println(paths)
if paths.count > 0{
documentsDirectory = paths[0] as? String
var savePath = documentsDirectory! + "/bach.jpg"
NSFileManager.defaultManager().createFileAtPath(savePath, contents: data, attributes: nil)
self.bach.image = UIImage(named: savePath)
}
}

})

}

关于ios - UIImage 下载返回 nil 并导致应用程序崩溃 (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30539531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com