我有一个应用程序,其中我没有在整个应用程序中使用ARC。但在某些视图控制器中,我通过compler标志-fobjc-arc
使用它。我不知道它是如何工作的,还有它的优点和缺点,那是一种好的技术吗?这样做有什么不利影响吗?任何人都可以有这种经历吗?有谁能够帮我?。另外我使用的是Xcode 4.2和LLVM compiler3.0。它实际上是一个非弧视图控制器。但是我添加了copiler标志。并删除了releases.is的编译错误
答案 0 :(得分:2)
您通常希望使用Xcode提供的重构实用程序来处理此过程:Edit > Refactor > Convert to Objective-C ARC…
。
MRC和ARC二进制文件能够无缝协作。它们是兼容的。
当然,您需要确保您的程序正确适用于它们正在编译的模式。如果标志错误并且您省略了引用计数操作,静态分析器将给出一些提示 - 或者编译器在看到引用计数操作时会出错。像往常一样,在编译时和运行时检查泄漏,找出你的眼睛错过了什么。
执行速度可能略有不同(可能更快/更慢)。记忆高水点可能会略有不同。 ARC程序通常与编写良好的MRC相当。
答案 1 :(得分:2)
这种方法没有问题。
ARC是一个编译时功能,它将在编译时在arc代码中插入retain,release调用。
因此编译后你的弧代码将与非弧代码相同。所以我认为这种方法没有问题。
但是将整个项目转换为ARC将是最好的方法,因为您不需要担心保留,释放调用
答案 2 :(得分:0)
然而,我发现这非常棘手,并且发现这篇文章是我的事业的一个很好的例子。http://www.codeography.com/2011/10/10/making-arc-and-non-arc-play-nice.html