带有Swift 3的APAddressBook - EXC_ARM_BREAKPOINT

时间:2016-09-12 09:56:16

标签: ios objective-c swift abaddressbook

我正在将我的一个应用程序更新为Swift 3,并且我一如既往地使用APAddressBook库(https://github.com/Alterplay/APAddressBook)。这是来自APAddressBook的Swift示例,但这也失败了

self.addressBook.loadContacts({ (contacts: [APContact]?, error: NSError?) in
    if let uwrappedContacts = contacts {
        // do something with contacts
    }
    else if let unwrappedError = error {
        // show error
    }
} as! APLoadContactsBlock)

应用程序崩溃时出现“主题1:EXC_BREAKPOINT(EXC_ARM_BREAKPOINT)”,但我不明白为什么。

2 个答案:

答案 0 :(得分:1)

这可以解决问题,在info.plist中添加NSContactsUsageDescription

addressBook.loadContacts { (contacts: [APContact]?, error: Error?) in
        if let unwrappedContacts = contacts {
            //your code
        }else if error != nil {
            //your code for error
        }
    }

答案 1 :(得分:0)

首先检查APAddressBook是否支持Swift 3。然后仔细阅读框架的描述。

  

iOS 10.0及之后的警告

     

为了保护用户隐私,在iOS 10.0或之后链接的iOS应用程序和   访问用户的联系人,必须静态声明意图   这样做。在您的应用中包含NSContactsUsageDescription键   Info.plist文件并为此密钥提供目的字符串。如果你的应用程序   试图在没有相应目的的情况下访问用户的联系人   字符串,您的应用退出。