在XCode
(我的案例中为版本5.1.1
)中,当您点击Edit/Refactor/Convert to Objective-C ARC
时,究竟应该发生什么?
我的目标是将旧代码转换为使用ARC。
我基本上将Objective-C Automatic Reference Counting
设置为Yes
,然后我按上述方法“重构”了我的代码。它失败了,我最终花了5个小时评论了autorelease
,retain
,release
等来自我代码的任何内容。
当我最终完成所有这些操作后,我能够继续执行Convert to Objective-C ARC
操作,最后告诉我不需要更改我的代码,这是真的,因为我已经手动完成了所有操作。
它是应该做我手动做的,但是自动做?为什么不呢?
答案 0 :(得分:3)
通过转动"自动参考计数"在手动上你告诉编译器该项目已经在使用ARC。因此,转换什么也没做 - 你告诉编译器它已经被转换了。
显然,您使用的所有非ARC功能现在都是错误,您必须修复它们。
通常的方法是不更改为自动引用计数。然后,编译器将检查您的代码,确保它可以转换所有内容(如果静态分析器发现引用计数错误,或者当事情太复杂时,它不会转换您的代码),您可以修复它的所有内容拒绝转换,一旦一切都好,你转换一切。
你的问题的答案是"否"。