我在我的项目中成功使用ARC.但是,我遇到了一些文件(例如,在单元测试和模拟对象中),其中ARC的规则现在更加脆弱.我记得听说有一种方法可以在每个文件的基础上禁用ARC,但我无法找到这个选项.
这可能吗?如何基于每个文件禁用ARC?
xcode objective-c automatic-ref-counting manual-retain-release
我的项目使用ARC(自动引用计数器),所以当我尝试导入ASIHTTPRequest库时,它有4个类,在实现中使用autorelease语句,这是一个例子:
[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]];
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
ARC forbids explicit message send of autorelease
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题.
我收到此错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ASIHTTPRequest", referenced from:
objc-class-ref in FirstViewController.o
"_OBJC_CLASS_$_SBJsonParser", referenced from:
objc-class-ref in FirstViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
注意我添加了框架核心图形,系统配置,移动核心服务,libz.dylib,libz.1.2.5.dylib,CF网络,UI工具包和基础.我搜索了所有论坛,花了差不多4天但却找不到原因.
当我评论我的ASIHTTPRequest和SBJSON代码行时,它工作正常.我添加了ASIHTTPRequest和SBJSON的所有类,并检查了三次.有谁能建议我做错了什么?