![](/img/trans.png)
[英]“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.