2011-08-04 75 views
6

當爲Mac OS X 10.7構建應用程序並保持兼容10.6時,實現向後兼容性的最佳方式是什麼?使用NSPopovers時,Mac OS X App向後兼容10.6和10.7

我有一個應用程序,當客戶端是10.7時使用NSPopover,當客戶端是10.6時使用NSMenu。問題是,在10.6機器上啓動應用程序時,該應用程序崩潰時出現「找不到符號」異常,並說在AppKit中找不到「__ __ __ __ _ _ _ _ _ _ _ _ _ _ _ _我是否必須在整個應用程序中使用id來實現新功能?

回答

2

您可以通過使用該功能NSClassFromString()這個返回一個Class對象,你可以用它來例如創建實例得到NSPopover類對象

id thePopover = [[NSClassFromString(@"NSPopover") alloc] init]; 

另一種可能性是有兩個單獨的榫文件中的一個對於10.6和一個對10.7,筆尖不一定是完整的界面,只是包含NSPopover的部分,然後在運行時加載適當的筆尖文件。