我在我的项目中混淆了代码,同时应用ARC的编码风格,有些则没有.然后我遇到了设置一些符号或标志的解决方案:-fno-objc-arc
我的问题是,这些旗帜是什么?这些符号是什么意思-fno-objc-arc?还有更多这些吗?
解决方法
-fno-objc-arc标志用于编译器,而不是链接器.它告诉编译器您的Objective C代码将手动执行所有释放和保留.这是必要的,因为新增的ARC模式
prohibits explicit use of
retain
,release
,autorelease
,dealloc
,and so on;即使通过选择器也无法调用它们.
将所有代码转换为ARC可能是一项大任务,因此编译器支持旧代码和新代码.您必须告诉编译器您正在编译的文件是旧的还是新的;你通过传递-fno-objc-arc标志来做到这一点.
还有许多其他编译器标志.它们允许您控制代码编译和优化的方式,向您报告错误和警告的方式,标题所在的路径等等.在终端窗口中键入man gcc以查看编译器选项列表.