禁用某些文件的自动引用计数

我已经下载了iOS 5 SDK,并发现ARC是新Apple编译器的一项强大功能。目前,许多第三方框架不支持ARC。我可以使用ARC作为新代码并保持当前的保留/发布代码不变吗?ARC转换器在这里不起作用,因为某些框架(例如JSONKit)无法使用该转换器转换为ARC。

编辑:

答案是将-fno-objc-arc不需要ARC的文件添加到编译器标志中。在Xcode 4中,您可以在目标->构建阶段->编译源代码下执行此操作。


温温酱
浏览 514回答 3
3回答

不负相思意

公开的ARC文档虽然在这一点上尚不明确,但似乎建议,只要每个类都是全部ARC或所有手动管理的类,就可以将这些类集成到单个程序中。您只能将ARC和非ARC混为一类。的文件说,发送retain,release,autorelease,或retainCount通过任何手段(包括计时器和延迟进行,其使用消息@selector)在ARC代码禁止。因此,您不能在ARC类中执行非ARC(因为禁止了必要的消息),并且您不能在非ARC类中执行ARC(因为ARC添加了没有ARC时无效的语法元素)。关于是否可以将非ARC库/框架集成到ARC程序中,同一文档更加清晰:是。它没有提到您是否可以在所有代码都不为ARC的程序中使用ARC库/框架,但是鉴于以上所有内容,其含义似乎是肯定的。

鸿蒙传说

如何禁用多个文件上的ARC并不是很直观,一段时间以来,我一直一步一步地进行操作,直到弄清楚该如何做。在Xcode的“目标/构建阶段/编译源”中选择所需的文件(CMD +单击或Shift +单击)按ENTER(双击将重置选择,因此它不起作用)输入-fno-objc-arc按Enter或完成
打开App,查看更多内容
随时随地看视频慕课网APP