加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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!)
    }
}

但是,它仍然会出现错误:

fatal error: unexpectedly found nil while unwrapping an Optional value.

我确信它很容易修复,但我对此很新 – 我做错了什么?

解决方法

尝试这样做:

if let imageData = pictures[string] {
    if let image = UIImage(data: imageData) {
        imageView.image = image
    }
}

假设字符串是有效密钥.

您正在处理选项,因此在使用之前有条件地解包每个返回对象.

强制展开是危险的,只有在您完全确定可选项包含值时才应使用.您的imageData可能没有正确的格式来创建图像,但无论如何您都强行打开它.这在Objective-C中是可以的,因为它只是意味着nil对象被传递.斯威夫特并不那么宽容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读