我想获取OS X系统的版本号,例如:10.5.4,10.4.8等。我希望在我的应用程序中获取它,我该怎么做?谢谢!
您可以在"/System/Library/CoreServices/SystemVersion.plist"读取属性列表,并提取“ProductVersion”键,这是OS X安装程序应用的方法。以下是一个示例:
NSString *versionString;
NSDictionary * sv = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"];
versionString = [sv objectForKey:@"ProductVersion"];
另外,命令swvers -productVersion
也可以实现同样的功能。
NSString *osver()
{
SInt32 versionMajor=0, versionMinor=0, versionBugFix=0;
Gestalt(gestaltSystemVersionMajor, &versionMajor);
Gestalt(gestaltSystemVersionMinor, &versionMinor);
Gestalt(gestaltSystemVersionBugFix, &versionBugFix);
return [NSString stringWithFormat:@"%d.%d.%d", versionMajor, versionMinor, versionBugFix];
}
你可以使用 Gestalt:
SInt32 version = 0;
Gestalt( gestaltSystemVersion, &version );
BOOL leopard = ( version >= 0x1050 );
if ( leopard )
{
//draw it this way
}
else
{
//draw it that way
}
记住,如果您想检查一个方法是否可用,最好直接使用 respondsToSelector: 进行测试。
-[NSProcessInfo operatingSystemVersionString]
方法返回人类可读且本地化的操作系统版本信息。适用于向用户显示或在错误电子邮件等中使用,但不适合进行解析。
+processInfo
来获取一个实例,以便调用 -operatingSystemVersionString
方法。 - ArtOfWarfare再次强调,您可以使用Gestalt。请查看文档以获取更多信息;具体来说,您需要在Gestalt Manager参考文档的“系统版本常量”部分中传递gestaltSystemVersionMajor
、gestaltSystemVersionMinor
和gestaltSystemVersionBugFix
常量。
[NSProcessInfo processInfo].operatingSystemVersion
NSOperatingSystemVersion
结构体。使用这个方法,它将返回Mac OS X的版本
+(SInt32) OSVersion;
{
SInt32 osxMinorVersion;
Gestalt(gestaltSystemVersionMinor, &osxMinorVersion);
return osxMinorVersion;
}
在Google Toolbox for Mac中,还有一个Cocoa包装器可以调用Gestalt函数: http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMSystemVersion.h