尽管在各地搜索,我找不到我的问题的答案。所以让我们看看你们都有多好。 :)xib中的预处理器指令?
我正在使用NSPopover的应用程序,该应用程序仅在10.7 Lion中可用,但我希望应用程序能够编译为10.5和更高版本。我正在使用预处理器指令来包装相关的popover代码,这看起来可以做到这一点......但是,我仍然遇到错误的最后一部分是Interface Builder中的.zib。如何清理在问题导航器中显示的错误,指出“类不可用:10.7之前的Mac OS X版本上的NSPopover”?
#ifdef __MAC_OS_X_VERSION_MAX_ALLOWED
#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
@property (assign) IBOutlet NSPopover *popover;
}
#endif
#endif
上面的工作在xxx.h和xxx.m's中,但是如何解决.xib错误呢?
尽管出现错误(红色),但它会成功建立。然而,我期望10.7的功能(popover)在10.7中工作,我错了,因为他们不......我在这里错过了什么?
您是否正在构建应用的两个单独版本,一个定位为10.7+,一个定位为<10.7?还是你正在构建一个单一的二进制文件,只有当它运行在10.7+上时,它才能在运行时动态创建一个'NSPopover'? –
简而言之,我希望创建一个运行在10.5 - 10.7的单个二进制文件,如果运行10.7,则使用NSPopover。 – glassfish
@glassfish然后Citron的答案不是你想要的。预处理器在编译时运行,无法检测应用程序将在哪个版本的操作系统上运行。 – hypercrypt