【发布时间】:2011-12-14 01:18:36
【问题描述】:
我为 iOS 4 编写了数千行代码。代码库包含对 retain 和 release 的许多调用,当项目更新到 iOS 5 和 ARC 时会导致错误。
有没有办法自动将手动保留释放 (MRR) 代码转换为自动引用计数 (ARC)?
【问题讨论】:
标签: ios xcode automatic-ref-counting
我为 iOS 4 编写了数千行代码。代码库包含对 retain 和 release 的许多调用,当项目更新到 iOS 5 和 ARC 时会导致错误。
有没有办法自动将手动保留释放 (MRR) 代码转换为自动引用计数 (ARC)?
【问题讨论】:
标签: ios xcode automatic-ref-counting
在 Xcode 6+ 中,现在的命令是:
Edit > Convert > To Objective-C ARC...
【讨论】:
来自 Xcode 4.2 release notes:
要启动该过程,请启用在出现错误后继续构建 General Preferences 面板,然后选择 Edit > Refactor > Convert to Objective-C ARC。您转换的目标已更新为构建 使用 Apple LLVM 编译器。 Xcode 尝试构建您的目标并 以确定必须进行哪些更改才能使用 ARC。如果它发现任何 阻止转换的问题,Xcode 会显示一个对话框,指导您 查看问题导航器中的错误。更正后 错误,选择转换为 Objective-C 自动引用计数 再次菜单项以重新启动 ARC 转换工作流程。
【讨论】:
ARC forbids explicit message send of 'release'...等错误。