我正在尝试构建首选项窗格,作为学习OS X开发的一部分。下载Apple的preference pane example code并尝试构建项目后,我收到以下错误:
clang:错误:无法同时指定'-fobjc-arc'和'-fobjc-gc'
在Build Settings中关闭垃圾收集允许项目正确构建,但是一旦在本地计算机上安装了首选项窗格示例,它就不会开始说,
“您无法打开PrefsPane首选项,因为它无法在基于Intel的Mac上运行。”
我尝试了架构(10.6,10.7)和Objective-C自动引用计数(是,否)和Objective-C垃圾收集(支持(-fobjc-gc),不支持,必需(-fobjc-)的每种组合gc only)可用。虽然某些组合确实允许项目构建,但我无法加载首选项窗格。
使用Xcode 4.3.2为OS X 10.7构建和部署首选项窗格所需的正确架构,ARC和GC设置是什么?
答案 0 :(得分:6)
关闭垃圾收集构建的PrefsPane,在构建设置中启用ARC可在Mac OS X 10.8.2上运行。 “System Preferences.app”只显示一条消息:
To use this preferences pane, System Preferences must quit and reopen.
这是因为系统首选项是在默认情况下启用垃圾收集的情况下启动的,如果它尝试在没有GC的情况下打开首选项窗格,则应该在没有GC的情况下重新启动它。 因此可以在10.8上使用ARC来开发首选项窗格。
答案 1 :(得分:3)
我自己偶然发现了这一点。事实证明(根据Apple开发人员文档):
所有64位首选项窗格都应使用垃圾回收。在大多数情况下,使用垃圾收集将简化代码并减少内存泄漏的可能性。
在Snow Leopard中,系统偏好设置应用程序将运行启用了垃圾收集的64位首选项窗格,以及禁用垃圾收集的32位窗格。
有关详细信息,请转到Updating Preference Panes for Snow Leopard and Beyond。
所以你不能使用ARC。只有GC。