[英]“Symbol not found” Crash while Testing Mac OS X 10.7-specific code on 10.6
[英]Mac OS X App backwards compatibility 10.6 and 10.7 while using NSPopovers
在為Mac OS X 10.7構建應用程序但同時保持10.6兼容時,實現向后兼容性的最佳方法是什么?
我有一個應用程序,當客戶端是10.7時使用NSPopover,當客戶端是10.6時使用NSMenu。 問題是,當在10.6計算機上啟動應用程序時,應用程序崩潰時出現“未找到符號”異常,說(在某種情況下)“在AppKit中找不到_ OBJC $ _NSPopover”。 我是否必須在整個應用程序中使用id來獲取新功能?
您可以使用函數NSClassFromString()獲取NSPopover的類對象,這將返回一個Class對象,您可以使用它來創建實例,例如
id thePopover = [[NSClassFromString(@"NSPopover") alloc] init];
另一種可能性是有兩個單獨的nib文件,一個用於10.6,一個用於10.7,nib不必是完整的接口,只是包含NSPopover的部分,然后在運行時加載適當的nib文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.