我正在将我的一个应用程序更新为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)”,但我不明白为什么。
答案 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文件并为此密钥提供目的字符串。如果你的应用程序 试图在没有相应目的的情况下访问用户的联系人 字符串,您的应用退出。