我知道为什么会出现这种错误,但我在这里找不到解决方案。基本上我试图从地址簿中获取某人头像的缩略图。我得到数据,然后需要检查数据是不是nil(换句话说,我们成功获得了一个图像)。如果我们拥有它,那么我将它作为UIImage返回。该代码在objective-c中运行良好。移植的代码因found nil while unwrapping an optional value
上的data = ABPerson...
错误而崩溃。
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!)!
}
答案 0 :(得分:2)
ABPersonCopyImageDataWithFormat
返回类型为Unmanaged<CFData>!
的不安全指针。你必须测试它。
if let ref = ref {
let img = ABPersonCopyImageDataWithFormat(ref, kABPersonImageFormatThumbnail)
if img != nil {
data = img.takeRetainedValue()
}
}