ios – 在解开可选值时意外地发现了nil
发布时间:2020-12-15 01:49:01 所属栏目:百科 来源:网络整理
导读:在我的应用程序中,我正在检查帖子是否有图片. 为此,我使用: if pictures[string]? != nil { if var image: NSData? = pictures[string]? { imageView.image = UIImage(data: image!) }} 但是,它仍然会出现错误: fatal error: unexpectedly found nil while
在我的应用程序中,我正在检查帖子是否有图片.
为此,我使用: if pictures[string]? != nil { if var image: NSData? = pictures[string]? { imageView.image = UIImage(data: image!) } } 但是,它仍然会出现错误:
我确信它很容易修复,但我对此很新 – 我做错了什么? 解决方法
尝试这样做:
if let imageData = pictures[string] { if let image = UIImage(data: imageData) { imageView.image = image } } 假设字符串是有效密钥. 您正在处理选项,因此在使用之前有条件地解包每个返回对象. 强制展开是危险的,只有在您完全确定可选项包含值时才应使用.您的imageData可能没有正确的格式来创建图像,但无论如何您都强行打开它.这在Objective-C中是可以的,因为它只是意味着nil对象被传递.斯威夫特并不那么宽容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |