关于在启用ARC的代码中使用retain,release

时间:2012-01-06 11:32:41

标签: ios5

这是关于IOS 5中的ARC。

假设它已启用ARC并且我仍然在代码中使用保留释放等,是否有任何风险?还是会自动处理??

我知道特定文件可以避免使用ARC。但在这种情况下,我没有做任何事情来删除此文件上的ARC。这个文件现在是一个混合(一些分配的发布,一些分配没有发布)。

在这样的环境中有什么风险? 谢谢你的帮助!

- MIA

3 个答案:

答案 0 :(得分:1)

您无法在启用ARC的代码中使用retainrelease。根本不允许 - 编译器会出错。如果您没有向编译器明确指出不应该在启用ARC的情况下编译文件(使用-fno-objc-arc标志)并且调用release,则代码将无法编译。

希望有所帮助!

答案 1 :(得分:0)

  

假设它已启用ARC,我仍在代码中使用保留释放等

你做不到。如果你这样做,你将收到编译器错误。

答案 2 :(得分:0)

米娅,这实际上是不真实的。如果您使用Clang从命令行进行编译并告诉它使用带有标志-fobjc-arc的ARC,您可以使用[对象发布]等等。它似乎是阻止使用这些内存管理的xCode调用

但是,像lxt一样,如果在xCode项目中启用ARC,则 NOT 能够调用release / retain,除非您明确地将-fno-objc-arc添加为编译器标志文件在你的项目中需要它。