swift 中地址簿框架的空值 returns

Null value returns from AddressBook framework in swift

在我的 swift 应用程序中,我正在从 AddressBook 框架中检索 AddressBook 联系人。除以下情况外,联系人已成功检索。

案例一:

如果我只保存一个没有联系人姓名的联系人号码到地址簿,联系人添加成功。

但是,如果我尝试检索没有姓名的联系人,应用程序会崩溃,提示收到致命错误。

编码:

var contactName: String = ABRecordCopyCompositeName(addressBookRecord).takeRetainedValue() as NSString as String

我不知道如何处理这个空值异常。请指导我,如何解决这个问题。

如果您有任何没有姓名的联系人,此代码将不会崩溃:

func processAddressbookRecord(addressBookRecord: ABRecordRef) {

    let addressBookRef: ABAddressBookRef = ABAddressBookCreateWithOptions(nil, nil).takeRetainedValue()

    let people:NSArray = ABAddressBookCopyArrayOfAllPeople(addressBookRef).takeRetainedValue();

    for person in people{
        if  let name:String = ABRecordCopyValue(person, kABPersonFirstNameProperty)?.takeRetainedValue() as? String {
            let numbers:ABMultiValue = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue()

            if let number:String = ABMultiValueCopyValueAtIndex(numbers,0)?.takeRetainedValue() as? String {
                print("number = \(number)");
                arrayOfContacts.addObject(["\(name)":"\(number)"]);
            }
        }
    }
}

原文post: