打开ABMultiValueCopyLabelAtIndex

时间:2015-05-21 10:36:19

标签: ios swift abaddressbook

目前,我在阅读带有空标签的电话号码时遇到了崩溃:

  

致命错误:在解包可选值时意外发现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

        }
}

但结果是一样的。

2 个答案:

答案 0 :(得分:0)

我没有测试,但这应该有效

if let phoneTest = ABMultiValueCopyValueAtIndex(phones, counter).takeRetainedValue()
{
    let phone = phoneTest as String
}

答案 1 :(得分:0)

let label = ABMultiValueCopyLabelAtIndex(phones,
                        counter).takeRetainedValue()  as? String ?? ""

是正确的方法。我的应用程序中还有其他一些错误,这就是我认为此解决方案不起作用的原因。