好的,所以在我尝试向我的项目中添加一些第三方代码之前,我一直很高兴在我的项目中使用 ARC。我将文件夹拖入(不是项目文件,只是一些视图控制器源文件)。3rd 方代码不是 ARC,所以我做了Edit->Refactor->Convert To Objective-C ARC并仅选择 3rd 方应用程序中的文件转换为 ARC。一切都很顺利,但我开始在我之前工作的代码中收到以下警告:
TTKSoundGenerator.m:94:10: warning: '__bridge' casts have no effect when not using ARC [-Warc-bridge-casts-disallowed-in-nonarc]
(__bridge CFStringRef)soundFile,
^~~~~~~~
1 warning generated.
这是出现问题的第一个线索。我继续构建并运行,果然应用程序崩溃了,在东西被释放的地方仍然被引用。因此,尽管Objective-C 自动引用计数在项目文件中设置为YES ,但 ARC 根本不起作用。
我回去对项目中的所有文件进行了Edit->Refactor->Convert To Objective-C ARC,希望能纠正这个问题,但没有骰子。所以现在这个项目陷入了 ARC 的困境。似乎在进行重构时取消选择文件以某种方式告诉 Xcode 向这些文件添加“无 ARC”的特殊情况。关于如何解决或进一步诊断此问题的任何想法?