Swift:在展开可选值时发现 nil

Posted

技术标签:

【中文标题】Swift:在展开可选值时发现 nil【英文标题】:Swift: Found nil while unwrapping an optional value 【发布时间】:2015-02-26 14:24:04 【问题描述】:

我知道为什么会出现此错误,但我无法在此处找到解决方案。基本上我试图从通讯录中获取某人头像的缩略图。我得到数据,然后需要检查数据是否为零(换句话说,我们成功获得了图像)。如果我们有它,那么我将它作为 UIImage 返回。该代码在objective-c中运行良好。移植的代码在data = ABPerson... 上出现found nil while unwrapping an optional value 错误而崩溃。

    var data :NSData? = NSData()

    var ref :ABRecordRef? = delegate.localContacts.objectForKey(email)

    if ref != nil 
        data = ABPersonCopyImageDataWithFormat(ref, kABPersonImageFormatThumbnail).takeRetainedValue()
    

    if data?.length > 0 
            return UIImage(data: data!)!
     

【问题讨论】:

【参考方案1】:

ABPersonCopyImageDataWithFormat 返回一个 Unmanaged<CFData>! 类型的不安全指针。您必须对其进行测试。

if let ref = ref 
    let img = ABPersonCopyImageDataWithFormat(ref, kABPersonImageFormatThumbnail)
    if img != nil 
        data = img.takeRetainedValue()
    

【讨论】:

以上是关于Swift:在展开可选值时发现 nil的主要内容,如果未能解决你的问题,请参考以下文章

swift 2 致命错误:在展开可选值时意外发现 nil - 类别名称

Swift:致命错误:在展开可选值时意外发现 nil

Swift 和 UILabel - 致命错误:在展开可选值时意外发现 nil

Swift,在展开可选值时意外发现 nil (NSKeyedUnarchiver)

Swift - 在展开可选值时意外发现 nil - 从委托调用变量

(Swift) PrepareForSegue: 致命错误: 在展开可选值时意外发现 nil