据我所知,我知道我们-fno-objc-arc
在 ARC 项目中使用标志来禁用不支持 ARC 的文件的 ARC。
我们也可以使用-fobjc-arc
flag 来启用 ARC,以便在非 ARC 项目中支持 ARC 的文件。
但是如果我想将我的 ARC 项目(不是特定文件)转换为非 ARC 项目,那么我应该如何继续呢?
任何人都请简要介绍一下。
提前致谢。
据我所知,我知道我们-fno-objc-arc
在 ARC 项目中使用标志来禁用不支持 ARC 的文件的 ARC。
我们也可以使用-fobjc-arc
flag 来启用 ARC,以便在非 ARC 项目中支持 ARC 的文件。
但是如果我想将我的 ARC 项目(不是特定文件)转换为非 ARC 项目,那么我应该如何继续呢?
任何人都请简要介绍一下。
提前致谢。
你需要按照这个步骤
转到您的项目目标 - 搜索 - Objective-C 自动引用计数器
NO
从 YES设置
享受编程!
您必须在适当的位置插入手动内存管理方法调用。一般来说,每一个new
, alloc
, retain
,copy
和mutableCopy
call 都应该由 arelease
或 an来平衡autorelease
(后者主要用于返回值的情况),因此,例如,以下启用 ARC 的代码:
MyClass *myObj = [[MyClass alloc] init];
[myObj doStuff];
OtherClass *otherObj = [[OtherClass alloc] init];
return otherObj;
在 MRC 下应该是这样的:
MyClass *myObj = [[MyClass alloc] init];
[myObj doStuff];
[myObj release];
OtherClass *otherObj = [[OtherClass alloc] init];
return [otherObj autorelease];
官方文档中有关内存管理的更多信息。