Iphone 将视图控制器单独转换为圆弧的效果如何?

Iphone 将视图控制器单独转换为圆弧的效果如何?,iphone,ios,ipad,Iphone,Ios,Ipad,我有一个应用程序,其中我没有对整个应用程序使用ARC。但在某些视图控制器中,我通过compler标志-fobjc ARC使用它。我不知道它将如何工作,也不知道它的利弊,这是一个好的技术吗?这样做有什么不利影响吗?。任何人都有这种经历吗?。有人能帮我吗?。另外,我使用的是Xcode 4.2和LLVM编译器3.0。它实际上是一个非arc视图控制器。但我添加了复印机标志。并删除了版本的编译错误。这是否足够了?您通常希望使用Xcode提供的重构实用程序来处理此过程:编辑>重构>转换为Objective-

我有一个应用程序,其中我没有对整个应用程序使用ARC。但在某些视图控制器中,我通过compler标志
-fobjc ARC
使用它。我不知道它将如何工作,也不知道它的利弊,这是一个好的技术吗?这样做有什么不利影响吗?。任何人都有这种经历吗?。有人能帮我吗?。另外,我使用的是Xcode 4.2和LLVM编译器3.0。它实际上是一个非arc视图控制器。但我添加了复印机标志。并删除了版本的编译错误。这是否足够了?

您通常希望使用Xcode提供的重构实用程序来处理此过程:
编辑>重构>转换为Objective-C arc…

MRC和ARC二进制文件能够无缝地协同工作。它们是兼容的

当然,您需要确保您的程序在编译模式下是正确的。如果标志错误并且您省略了引用计数操作,静态分析器将给出一些提示,或者编译器在看到引用计数操作时将出错。和往常一样,在编译时和运行时检查是否有泄漏,以发现您的眼睛遗漏了什么


执行速度可能略有不同(可能更快/更慢)。记忆高点可能会略有变化。ARC程序通常相当于编写良好的MRC。

这种方法不会有任何问题

ARC是一个编译时特性,它将在编译时在ARC代码中插入retain、release调用

因此,编译后,arc代码将与非arc代码相同。因此,我认为这种方法不会有任何问题


但是,将整个项目转换为ARC将是最好的方法,因为您不需要担心retain、release调用

然而,我发现这是一个非常棘手的问题,并且发现这篇文章对于我来说是一个编写良好的示例。

ARC可以帮助您编写更少的代码。它可以提高性能,但你真的不应该指望它that@justin..thanks请注意。我的意思是,我只是在编译源代码中添加了-fobjc arc。然后当我编译时,一些错误出现在发行版等等。然后我删除了所有的自动发行版和发行版。然后这些错误消失了。我真的是arc的新手。是吗enough@hacker不客气。自动转换为ARC通常是正确的,但并不完美。真正的程序太复杂了。因此,自动化的过程非常简单,大部分时间都做正确的事情。但是,它可能会引入一些更改,您需要预留时间重新测试您的程序(并进行任何必要的修复)。对于很多程序来说,转换过程仍然可以减少bug数量。@hacker您使用的是自动转换,对吗<代码>编辑>重构>转换为ObjC ARC…我刚刚在编译源代码中添加了-fobjc ARC。设置中是否需要更改。编译器为LLVM3。0@hackera)确保您使用的是版本控制(例如Git)或副本,然后b)使用我提到的重构工具。c) 然后test@mdhun..thanks请注意。我的意思是我刚刚在编译源代码中添加了-fobjc arc。然后当我编译一些错误时,这些错误是发布版本的错误。然后我删除了所有的自动发布和发布版本。然后这些错误就消失了。我真的是arc的新手。这够了吗…现在我在该视图中没有发布控制器..Analyzer在视图中显示没有泄漏控制器..我完全同意@Midhum,如果你想更多地了解ARC是如何工作的,请查看文档@hacker:无需担心。将非圆弧转换为圆弧时,请删除“释放”、“保留”和“自动释放”。如果您需要在自动释放池中添加任务。您可以使用
@autorelease
关键字。我担心,如果只是添加复印机标志并删除版本就可以了?