繁体   English   中英

可可与其他Mac OS兼容

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM