`转换为Objective-C ARC`无用吗?

时间:2014-12-02 16:37:58

标签: ios xcode automatic-ref-counting

XCode(我的案例中为版本5.1.1)中,当您点击Edit/Refactor/Convert to Objective-C ARC时,究竟应该发生什么?

我的目标是将旧代码转换为使用ARC。

我基本上将Objective-C Automatic Reference Counting设置为Yes,然后我按上述方法“重构”了我的代码。它失败了,我最终花了5个小时评论了autoreleaseretainrelease等来自我代码的任何内容。

当我最终完成所有这些操作后,我能够继续执行Convert to Objective-C ARC操作,最后告诉我不需要更改我的代码,这是真的,因为我已经手动完成了所有操作。

它是应该做我手动做的,但是自动做?为什么不呢?

1 个答案:

答案 0 :(得分:3)

通过转动"自动参考计数"在手动上你告诉编译器该项目已经在使用ARC。因此,转换什么也没做 - 你告诉编译器它已经被转换了。

显然,您使用的所有非ARC功能现在都是错误,您必须修复它们。

通常的方法是更改为自动引用计数。然后,编译器将检查您的代码,确保它可以转换所有内容(如果静态分析器发现引用计数错误,或者当事情太复杂时,它不会转换您的代码),您可以修复它的所有内容拒绝转换,一旦一切都好,你转换一切。

你的问题的答案是"否"。