我已经下载了iOS 5 SDK,并发现ARC是新Apple编译器的一项强大功能。目前,许多第三方框架不支持ARC。我可以使用ARC作为新代码并保持当前的保留/发布代码不变吗?ARC转换器在这里不起作用,因为某些框架(例如JSONKit)无法使用该转换器转换为ARC。编辑:答案是将-fno-objc-arc不需要ARC的文件添加到编译器标志中。在Xcode 4中,您可以在目标->构建阶段->编译源代码下执行此操作。
3 回答
UYOU
TA贡献1878条经验 获得超4个赞
公开的ARC文档虽然在这一点上尚不明确,但似乎建议,只要每个类都是全部ARC或所有手动管理的类,就可以将这些类集成到单个程序中。
您只能将ARC和非ARC混为一类。的文件说,发送retain,release,autorelease,或retainCount通过任何手段(包括计时器和延迟进行,其使用消息@selector)在ARC代码禁止。因此,您不能在ARC类中执行非ARC(因为禁止了必要的消息),并且您不能在非ARC类中执行ARC(因为ARC添加了没有ARC时无效的语法元素)。
关于是否可以将非ARC库/框架集成到ARC程序中,同一文档更加清晰:是。它没有提到您是否可以在所有代码都不为ARC的程序中使用ARC库/框架,但是鉴于以上所有内容,其含义似乎是肯定的。
慕的地10843
TA贡献1785条经验 获得超8个赞
如何禁用多个文件上的ARC并不是很直观,一段时间以来,我一直一步一步地进行操作,直到弄清楚该如何做。
在Xcode的“目标/构建阶段/编译源”中选择所需的文件(CMD +单击或Shift +单击)
按ENTER(双击将重置选择,因此它不起作用)
输入-fno-objc-arc
按Enter或完成
- 3 回答
- 0 关注
- 508 浏览
添加回答
举报
0/150
提交
取消