[英]Cocoa compatible with different Mac OS
我有一个Cocoa应用程序,该应用程序在Mac OS 10.7和10.8中具有不同的功能(部署目标是10.7)。 例如,在10.8中,我有一个用于Sharing Service
的按钮,而在10.7中,该按钮是隐藏的。
问题是我在运行应用程序时如何知道哪种Mac OS。 对于iOS,我可以从UIDevice
获取它。 但是对于可可,我找不到类似的班级。
目前,我使用以下方法检测操作系统:
- (BOO)isServiceAvalable
{
if (NSClassFromString(@"A_Unique_Class_In_One_OS"))
{
return YES;
}
return NO;
}
我希望有更优雅的方法。
如果像scorpiozj提到的那样不赞成格式塔(Gestalt),那么这是一种简单的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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.