【发布时间】:2014-11-12 06:25:33
【问题描述】:
由于Gestalt在10.10中被弃用,所以我使用Apple Script来确定OSX版本,实现如下:
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:@"set os_version to do shell script \"sw_vers -productVersion\""];
但是这个苹果脚本在启动时失败并且守护进程崩溃了。我不能使用NSProcessInfo
operatingSystemVersion 因为我正在使用 OSX SDK 10.8,现在我不想将我的代码升级到 Xcode 6。我也不能使用operatingSystemVersionString,因为根据 Apple Docs - 解析不安全。
谁能告诉我如何在启动期间使用 OSX SDK 10.8 在10.10 上获取 OSX 版本。
我们可以通过NSTask实现吗?
【问题讨论】:
-
那么你可以使用
sw_vers使用的机制,读取/System/Library/CoreServices/SystemVersion.plist的属性列表,直接读取productVersion。 -
@petesh 启动时间也能正常工作。
-
我看不出它是怎么做到的。你只是在读一个文件。
-
我将 sw_vers -productVersion 与 NStask 一起使用,效果很好
标签: objective-c cocoa osx-mountain-lion osx-yosemite