Ben*_*ray 9 iphone xcode ios swift
在我的应用程序中,我正在检查帖子是否有图片.
为此,我使用:
if pictures[string]? != nil {
if var image: NSData? = pictures[string]? {
imageView.image = UIImage(data: image!)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,它仍然会出现错误:
致命错误:在展开Optional值时意外发现nil.
我确信它很容易修复,但我对此很陌生 - 我做错了什么?
Ano*_*rak 14
尝试这样做:
if let imageData = pictures[string] {
if let image = UIImage(data: imageData) {
imageView.image = image
}
}
Run Code Online (Sandbox Code Playgroud)
假设这string是一个有效的密钥.
您正在处理选项,因此在使用之前有条件地解包每个返回对象.
强制展开是危险的,只有在绝对确定可选项包含值时才应使用.您的imageData可能没有正确的格式来创建图像,但无论如何您都强行打开它.这可以在Objective-C中完成,因为它只是意味着nil对象被传递.斯威夫特不是那么宽容.