【发布时间】:2016-10-02 00:06:01
【问题描述】:
我想这主要是关于 iOS 如何处理弃用 API 的问题。
我有一个支持 iOS 8.3+ 的应用,它在 9.3.x 之前运行良好,但在 iOS 10 上出现问题。当我的应用让用户选择联系人时,我得到的错误是:
由于未捕获的异常“CNPropertyNotFetchedException”而终止应用程序,原因:“获取联系人时未请求属性。”
我发现another post here 表示不推荐使用 ABAddressBook API,我应该改用 CNContactPickerViewController(和相关的 ContactsUI 类)。我理解从弃用的类转移到新的和改进的类是推荐的解决方案的答案。但是为什么我必须这样做?
我认为在以后的版本中通常仍支持已弃用的类和方法。我的应用程序可以在 iOS 9.3 上正常运行然后在 10.0 上崩溃对我来说毫无意义,特别是考虑到它编译得很好(部署目标是“8.3”,基础 SDK 是“最新 (10.0)”。)此外,一些代码仍然有效(`ABAddressBookCreateWithOptions')。
最后,有没有一种很好的方法来分析代码并突出所有这些已弃用 API 的使用?我的构建输出没有显示任何此类警告。
【问题讨论】:
标签: ios abaddressbook