在我的快速应用程序中,我正在从AddressBook框架中检索AddressBook联系人。除下列情况外,联系人将被成功检索。
案例1:
如果我将没有联系人名称的联系人号码单独保存到AddressBook,则会成功地添加联系人。
但是,如果我试图检索没有名称的联系人,应用程序就会崩溃,说的致命错误收到了.
编码:
var contactName: String = ABRecordCopyCompositeName(addressBookRecord).takeRetainedValue() as NSString as String我不知道如何处理这个空值异常。请指导我,如何解决这个问题。
发布于 2015-10-06 08:35:02
如果您没有姓名的联系人,此代码将不会崩溃:
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)"]);
}
}
}
}原文:App crashing while fetching contact numbers from iPhone in SWIFT
https://stackoverflow.com/questions/32963845
复制相似问题