由于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
实现吗?
答案 0 :(得分:0)
文档说:
NewGestalt() DEPRECATED
<强>推荐使用: 请尽可能使用NewGestaltValue。
要点: 为Gestalt已经识别的那些添加选择器代码。
讨论: NewGestalt函数注册指定的选择器代码 格式塔管理器,以便在调用格式塔功能时 使用该选择器代码,指定的选择器函数是 执行。在调用NewGestalt之前,您必须定义一个选择器 函数回调。有关说明,请参阅SelectorFunctionProcPtr 如何定义选择器功能。
注册格式塔管理器是一种软件方式 作为系统扩展,使他们的存在已知潜力 用户的服务。
在Mac OS X中,选择器和替换值在a上 每个上下文的基础。这意味着它们只适用于 应用程序或安装它们的其他代码。你不能用这个 功能,使信息可用于另一个过程。
使用NewGestalt()注册的Gestalt选择器不能 删除。