objective-c检测类是否可用于不同的OS版本

时间:2012-11-01 17:44:34

标签: objective-c class version compatibility

我的应用程序需要与不同的操作系统版本兼容。

如何检测特定类是否可用于特定操作系统?

例如,NSPopover仅在Lion及以上版本中可用,因此如果该人使用Snow Leopard,如何检查操作系统是否支持NSPopover

1 个答案:

答案 0 :(得分:38)

你可以做到

if ([TheWantedClass class]) {
    // The class exists so run code
} else {
    // The class doesn't exist so use an alternate approach
}

if (NSClassFromString(@"TheWantedClass") != nil) {
    // The class exists
} else {
    // The class doesn't exist
}

https://developer.apple.com/documentation/foundation/1395135-nsclassfromstring