目前,我在阅读带有空标签的电话号码时遇到了崩溃:
致命错误:在解包可选值时意外发现nil
sudo service nginx restart
我试着将标签读作:
if let phones: ABMultiValueRef = ABRecordCopyValue(person,
kABPersonPhoneProperty)?.takeRetainedValue(){
for counter in 0..<ABMultiValueGetCount(phones){
let label = ABMultiValueCopyLabelAtIndex(phones,
counter).takeRetainedValue() as String
let phone = ABMultiValueCopyValueAtIndex(phones,
counter).takeRetainedValue() as! String
}
}
但结果是一样的。
答案 0 :(得分:0)
我没有测试,但这应该有效
if let phoneTest = ABMultiValueCopyValueAtIndex(phones, counter).takeRetainedValue()
{
let phone = phoneTest as String
}
答案 1 :(得分:0)
let label = ABMultiValueCopyLabelAtIndex(phones,
counter).takeRetainedValue() as? String ?? ""
是正确的方法。我的应用程序中还有其他一些错误,这就是我认为此解决方案不起作用的原因。