2014-12-02 26 views
-2

XCode(版本5.1.1在我的情况),当你点击Edit/Refactor/Convert to Objective-C ARC,究竟应该发生什么?转换为Objective-C ARC无效吗?

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

我基本上设置Objective-C Automatic Reference CountingYes,然后我做了上述“重构”我的代码。它失败了,我最终花了5个小时评论任何与autorelease,retainrelease等从我的代码。

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

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

+0

大声笑,它不适合你在一个项目上。所以它没有做任何事情?我已经使用了它几次,从来没有遇到过问题。话虽如此,我过去3年没有开始没有ARC的项目。只要项目编译并运行所有你需要做的就是点击“转换到ARC”按钮,它将一切正常。 – Fogmeister 2014-12-02 16:43:24

+1

你说这不适合你。这令人沮丧。但这并不意味着该功能什么都不做。这意味着对于您尝试过的其中一个项目无效。我不知道为什么它不起作用。我想知道在做转换之前是否需要启用ARC? “转换为ARC”按钮是指您选择的菜单选项的简短方式。 – Fogmeister 2014-12-02 16:46:15

+0

@Fogmeister我其实也认为,也许我应该尝试转换而不手动启用ARC,它可能已经完成了我并转换了我的代码。谁知道...... – PaulG 2014-12-02 16:47:23

回答

3

通过手动打开“自动引用计数”,您告诉编译器该项目已经在使用ARC。因此,转换什么也没做 - 你告诉编译器它已经被转换了。

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

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

而你的问题的答案是“否”。