【发布时间】:2012-05-15 05:04:42
【问题描述】:
我已经看到很多关于将整个项目转换为 arc,然后使用标志告诉 Xcode 哪些不转换的信息。
仅将单个文件转换为 arc 怎么样?我试过了,它运行良好。我可以这样做吗?我有点担心,因为如果我在这里和那里转换东西,整个项目都不会转换为 arc,它们会导致内存泄漏。
【问题讨论】:
标签: xcode memory-management memory-leaks automatic-ref-counting xcode4.3
我已经看到很多关于将整个项目转换为 arc,然后使用标志告诉 Xcode 哪些不转换的信息。
仅将单个文件转换为 arc 怎么样?我试过了,它运行良好。我可以这样做吗?我有点担心,因为如果我在这里和那里转换东西,整个项目都不会转换为 arc,它们会导致内存泄漏。
【问题讨论】:
标签: xcode memory-management memory-leaks automatic-ref-counting xcode4.3
是的,你可以。但是,您需要告诉编译器哪些文件不是 ARC。您可以在项目设置中执行此操作。转到your project > Select the target of the app in question > Build Phases。现在下拉“编译源”并选择您不希望使用 ARC 编译的文件,按 ENTER 并会出现一个小弹出框。在这里你可以写-fno-objc-arc。按Done 就完成了。
编译时,它会尝试为没有-fno-objc-arc 标志的文件添加自动引用计数。在使用 ASIHTTPRequest 或 MBProgressHud(和其他)等非弧库时非常有用。
【讨论】:
Objective-C Automatic Reference Counting。
Build Phase 选项卡的Compile Sources 中为这些库选择 .m 文件并将此标志添加到它们。这是因为项目设置设置为使用 ARC,而这些文件没有。所以这些文件应该被编译器从 ARC 中排除。
只告诉某些文件是ARC使用标志:
-fobjc-arc
【讨论】: