4

我正在尝试构建一个首选项窗格作为学习 OS X 开发的一部分。下载 Apple 的首选项窗格示例代码并尝试构建项目后,我收到以下错误:

clang:错误:不能同时指定“-fobjc-arc”和“-fobjc-gc”

在构建设置中关闭垃圾收集允许项目正确构建,但是一旦在本地计算机上安装了首选项窗格示例,它就不会开始说,

“您无法打开 PrefsPane 首选项,因为它不适用于基于 Intel 的 Mac。”

我已经尝试过架构(10.6、10.7)和 Objective-C 自动引用计数(是、否)和 Objective-C 垃圾收集(支持 (-fobjc-gc)、不支持、必需(仅 -fobjc-gc)的所有组合)可用。虽然某些组合确实允许构建项目,但我无法加载首选项窗格。

使用 Xcode 4.3.2 为 OS X 10.7 构建和部署首选项窗格所需的正确架构、ARC 和 GC 设置是什么?

4

2 回答 2

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 的情况下重新启动。因此 ARC 可以在 10.8 上用于开发首选项窗格。

于 2012-11-12T21:47:13.510 回答
3

我自己偶然发现了这个。事实证明(根据 Apple 开发文档):

所有 64 位首选项窗格都应使用垃圾收集。在大多数情况下,使用垃圾收集将简化您的代码并减少内存泄漏的可能性。

在 Snow Leopard 中,系统首选项应用程序将运行启用垃圾收集的 64 位首选项窗格和禁用垃圾收集的 32 位窗格。

有关更多信息,请转到更新 Snow Leopard 及其他版本的首选项窗格

所以你不能使用ARC。只有GC。

于 2012-04-16T01:26:36.153 回答