我想这主要是关于iOS如何处理弃用API的问题.
我有一个支持iOS 8.3+的应用程序,它在9.3.x中运行良好,但它在iOS 10上运行.当我的应用程序允许用户选择联系人时,我得到的错误是:
由于未捕获的异常'CNPropertyNotFetchedException'而终止应用程序,原因是:'获取联系人时未请求属性.'
我在这里发现了另一篇文章,其中说ABAddressBook API已被弃用,我应该使用CNContactPickerViewController(和相关的ContactsUI类).我理解的答案是,推荐的解决方案是从弃用的类转移到新的和改进的类.但为什么我必须这样做?
我认为在以后的版本中通常仍然支持弃用的类和方法.对我来说,我的应用程序在iOS 9.3上工作正常,然后在10.0上崩溃是没有意义的,特别是考虑到它编译得很好(部署目标是"8.3",基本SDK是"最新(10.0)".)此外,一些代码仍然有效(`ABAddressBookCreateWithOptions').
最后,是否有一种很好的方法来分析代码并强调所有这些使用过时的API?我的构建输出没有显示任何此类警告.