在同一个iOS项目中混合使用ARC和非ARC代码有多安全?

在同一个iOS项目中混合使用ARC和非ARC代码有多安全?,ios,objective-c,automatic-ref-counting,Ios,Objective C,Automatic Ref Counting,我正在修改一个非圆弧的。我的大部分iOS体验都是使用ARC启用的objective-c,因此当我创建新文件并将其添加到项目中时,我倾向于使用ARC使其符合ARC(特别是当我面临奇怪的非ARC代码时) 让我夜不能寐的问题是:在我的项目中混合使用arc和非arc代码有多安全可靠?当QA时间到来时,测试内存泄漏和性能等东西会是一场噩梦吗?另一条路问道。。是否值得将现有的非arc代码转换为arc代码并消除潜在的问题?您可以自由混合,而不会出现任何问题 我认为这不安全,因为当ARC打开时,某些代码是被禁止

我正在修改一个非圆弧的。我的大部分iOS体验都是使用ARC启用的objective-c,因此当我创建新文件并将其添加到项目中时,我倾向于使用ARC使其符合ARC(特别是当我面临奇怪的非ARC代码时)


让我夜不能寐的问题是:在我的项目中混合使用arc和非arc代码有多安全可靠?当QA时间到来时,测试内存泄漏和性能等东西会是一场噩梦吗?另一条路问道。。是否值得将现有的非arc代码转换为arc代码并消除潜在的问题?

您可以自由混合,而不会出现任何问题

我认为这不安全,因为当ARC打开时,某些代码是被禁止的,例如以下方法:

- (void)dealloc
{
    [super dealloc];
}
当然,在发布时:

[exampleVariable release];

可以出现在非ARC项目中。

这些是编译器标志,而不是链接器标志。此外,使用ARC并不能免除您需要测试应用程序的漏洞和性能。是的,这确实是您需要的全部答案。有一个警告(关于使用糟糕的命名约定的预编译代码诱使ARC过度扩展),但我认为这不适用于这种情况。呃。。我非常尊重你们两位,我承认你们两位的技术经验。。我希望得到一些证据或文件?或者你的答案仅仅是基于个人经验(这本身就足够了)@abbood-ARC不是魔法,它只是在编译时查看代码并添加必要的保留和发布。生成的代码与您自己编写的代码没有什么不同。“如果对某些文件使用手动引用计数更方便,您还可以选择在每个文件的基础上使用ARC。”您能否解释
-fno objc ARC
编译标志的用途/需要?我正在使用一个弧前库,它说为每个源文件添加这个标志。你是说只要使用正确的标志就安全吗?我的问题是假设所有这样的非安全代码都已经被解释(即删除)了。在这种情况下,它是完全安全的,因为这是唯一重要的事情。解释非ARC代码本质上不就是ARC代码吗?