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 和 UILabel - 致命错误:在展开可选值时意外发现 nil
Swift,在展开可选值时意外发现 nil (NSKeyedUnarchiver)