我正在从api成功保存图片网址,并且在运行应用时遇到问题。 avatarString有正确的URL,但是当我到达下一行时,我一直得到:
致命错误:在解包可选值时意外发现nil
我的avatarData var返回为nil。我不知道为什么。运行Xcode Beta 6.3。谢谢你的帮助。
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
var avatarString = NSURL(string: self.userInfo.avatarURL)!
var avatarData = NSData(contentsOfURL: avatarString, options: nil, error: nil)
var avatarImage = UIImage(data: avatarData!)
self.avatarImage.image = avatarImage
})
答案 0 :(得分:2)
始终在主队列中执行与UI相关的工作(设置ImageView图像等) 并且重要的工作就像下载数据一样,从主队列开始,尝试这样:
if let avatarString = NSURL(string: self.userInfo.avatarURL) {
dispatch_async(dispatch_get_global_queue(Int(QOS_CLASS_USER_INITIATED.value), 0)){
let imageData = NSData(contentsOfURL: avatarString)
dispatch_async(dispatch_get_main_queue()) {
if imageData != nil {
self.avatarImage?.image = UIImage(data: imageData!)
}
}
}
}
可能有帮助。