儘管在各地搜索,我找不到我的問題的答案。所以讓我們看看你們都有多好。 :)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