我有一个Cocoa应用程序,它在Mac OS 10.7和10.8中具有不同的功能(部署目标是10.7)。例如,在10.8中我有Sharing Service
的按钮,而在10.7中按钮被隐藏。
这里的问题是如何在我的应用运行时知道哪种Mac OS存在。对于iOS,我可以从UIDevice
获取它。但对于Cocoa,我找不到类似的课程。
目前,我使用以下方法检测操作系统:
- (BOO)isServiceAvalable
{
if (NSClassFromString(@"A_Unique_Class_In_One_OS"))
{
return YES;
}
return NO;
}
我希望有更优雅的方式来做到这一点。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果以scorpiozj提及格式塔被弃用,那么这里有一个简单的NSApplescript方法......
NSString* getSystemVersion() {
NSString* returnString = nil;
NSString* cmd = @"return system version of (get system info)";
NSAppleScript* theScript = [[NSAppleScript alloc] initWithSource:cmd];
NSDictionary* errorDict = nil;
NSAppleEventDescriptor* result = [theScript executeAndReturnError:&errorDict];
[theScript release];
if (errorDict) {
returnString = [NSString stringWithFormat:@"Error:%@ %@", [errorDict valueForKey:@"NSAppleScriptErrorNumber"], [errorDict valueForKey:@"NSAppleScriptErrorMessage"]];
} else {
returnString = [result stringValue];
}
return returnString;
}