首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空值从AddressBook框架返回

空值从AddressBook框架返回
EN

Stack Overflow用户
提问于 2015-10-06 07:11:13
回答 1查看 229关注 0票数 1

在我的快速应用程序中,我正在从AddressBook框架中检索AddressBook联系人。除下列情况外,联系人将被成功检索。

案例1:

如果我将没有联系人名称的联系人号码单独保存到AddressBook,则会成功地添加联系人。

但是,如果我试图检索没有名称的联系人,应用程序就会崩溃,说的致命错误收到了.

编码:

代码语言:javascript
复制
var contactName: String = ABRecordCopyCompositeName(addressBookRecord).takeRetainedValue() as NSString as String

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-06 08:35:02

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

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32963845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档