Null值从swift中的AddressBook框架返回 [英] Null value returns from AddressBook framework in swift
问题描述
在我的swift应用程序中,我正在从AddressBook框架中检索AddressBook联系人。除下列情况外,会成功检索联系人。
In my swift app, I am retrieving AddressBook contacts from AddressBook framework. Contacts are retrieved successfully except the following case.
案例1:
如果我在没有联系人名称的情况下单独保存联系人号码到AddressBook,联系人已成功添加。
If I save a contact number alone without contact name to AddressBook, contact is successfully added.
但是,如果我尝试检索没有名称的联系人,应用程序崩溃,说收到致命错误。
But, If I try to retrieve that contact which does not having name, App crashes, saying that fatal error received.
编码:
var contactName: String = ABRecordCopyCompositeName(addressBookRecord).takeRetainedValue() as NSString as String
我不知道如何处理这个null价值例外。请指导我,如何解决这个问题。
I don't know how to handle this null value exception. Kindly guide me, how to solve this.
推荐答案
如果您有任何没有名字的联系方式,此代码不会崩溃:
This code will not crash if you got any contact without name:
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)"]);
}
}
}
}
这篇关于Null值从swift中的AddressBook框架返回的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!