这些符号(-fno-objc-arc)是什么意思?
我在我的项目中混淆了代码,既适用于ARC的编码风格,也有一些不适用。 然后我遇到了设置一些符号或标志的解决方案:-fno-objc-arc
我的问题是,这些旗帜是什么? 这些符号是什么意思-fno-objc-arc? 还有更多吗?
-fno-objc-arc
标志用于编译器 ,而不是链接器 。 它告诉编译器您的Objective C代码将手动执行所有释放和保留。 这是必要的,因为新添加的ARC模式禁止显式使用retain
, release
, autorelease
, dealloc
等 ; 即使通过选择器也无法调用它们。
将所有代码转换为ARC可能是一项大任务,因此编译器支持旧样式和新样式。 您必须告诉编译器您正在编译的文件是旧的还是新的; 你通过传递-fno-objc-arc
标志来做到这一点。
还有许多其他编译器标志。 它们允许您控制代码编译和优化的方式,向您报告错误和警告的方式,标题所在的路径等等。 在终端窗口中键入man gcc
以查看编译器选项列表。
ARC代表自动参考计数。 以下是Apple开发者网站提供的一些信息:
自动参考计数
Objective-C的自动引用计数(ARC)使内存管理成为编译器的工作。 通过使用Apple LLVM编译器启用ARC,您将永远不需要再次键入retain或release,从而大大简化了开发过程,同时减少了崩溃和内存泄漏。 编译器完全了解您的对象,并在不再使用它的瞬间释放每个对象,因此应用程序运行速度与以往一样快,具有可预测的平滑性能。
在编译较旧的,不符合规范的代码时,禁用ARC是很常见的。
- 用于UITableViewCellAccessoryCheckmark的逻辑
- AutoLayout,无法同时满足约束
- 使用Objective C读取发布到设备控制台的日志消息
- CLLocationManager geo-fencing / startMonitoringForRegion:vs. startMonitoringForSignificantLocationChanges:与10分钟的startUpdating调用
- 当点击uitextfield的清除button键盘消失而不是文本
- 我如何准备一个UISplitViewController辅助VC来改变displayMode?
- 本地通知?
- 从Plist存储和检索
- 类继续的Xcode代码片段?