我有一个使用 ABAddressBook API 的应用程序,我正在尝试将我的应用程序转换为使用 ARC。
我知道 AddressBook API 是用原生 C 编写的,并且在启用 ARC 时它给了我很多错误。
任何人都知道该怎么做,或者甚至值得这样做吗?
提前致谢。
我有一个使用 ABAddressBook API 的应用程序,我正在尝试将我的应用程序转换为使用 ARC。
我知道 AddressBook API 是用原生 C 编写的,并且在启用 ARC 时它给了我很多错误。
任何人都知道该怎么做,或者甚至值得这样做吗?
提前致谢。
一种可能的解决方案是为难以转换的代码设置编译器标志。转到您正在使用的特定目标的构建设置,并将标志“-fno-objc-arc”添加到有问题的文件中。此外,有关实际问题的任何更多信息都会有所帮助。
调酒师,
首先,工作代码就是工作代码。您可以在同一个应用程序中轻松混合使用两种内存管理机制。我只在为其他目的打开代码时将类转换为 ARC。这让我可以慢慢地将我的应用程序移动到 ARC。为什么要更改此代码以使用 ARC?
其次,核心基础项目和 ARC 之间的接口可能看起来很复杂……但事实并非如此。大多数问题都是通过使用__bridge
类型限定符来处理的。通常,编译器/修复它会准确地告诉您需要做什么。(工作的、不泄漏的 CF 代码不需要更改。它只需要告诉 ARC 让它别管它。)
安德鲁