当前位置:  开发笔记 > IOS > 正文

如何以编程方式确定正在运行的Mac OS X版本?

如何解决《如何以编程方式确定正在运行的MacOSX版本?》经验,为你挑选了4个好方法。

我有一个程序需要在Tiger上的行为略有不同于Leopard.有没有人知道系统调用,这将允许我准确地确定正在运行的Mac OS XI版本.我已经找到了许多宏定义来确定构建机器的操作系统,但是没有什么能够确定正在运行的机器的操作系统.

谢谢,乔



1> Nik Reiman..:

在这里看到这篇文章

但简而言之,如果您使用的是碳,请使用Gestalt()调用,如果您使用的是Cocoa,则会有一个名为NSAppKitVersionNumber的常量,您只需检查它即可.

编辑:对于Mac OSX 10.8及更高版本,请不要再使用Gestalt().有关更多详细信息,请参阅此答案:如何在OS X或iOS(不使用Gestalt)中确定运行时的操作系统版本?


如链接文章中所述,检查NSAppKitVersionNumber不是很好,因为它告诉你AppKit的版本,而不是Mac OS X的版本.这两者不是线性相关的.
但是,您仍然可以从Obj-C代码调用Gestalt().
自10.8起不推荐使用Gestalt()调用,不再建议使用。参见http://stackoverflow.com/questions/11072804/mac-os-x-10-8-replacement-for-gestalt-for-testing-os-version-at-runtime

2> 小智..:

你能检查一下能力的存在吗?例如:

if (NSClassFromString(@"NSKeyedArchiver") != Nil)

要么

if ([arrayController respondsToSelector: @selector(selectedIndexes)])

然后你知道操作系统做你需要它做的事情,而不是Apple的产品营销组给它一个特定的数字;-)



3> S.Lott..:

API通过格式塔管理器.

请参阅CocoaDev站点中的" 确定操作系统版本 ".



4> Douglas F Sh..:

在终端:

system_profiler SPSoftwareDataType

得到:

Software:

    System Software Overview:

      System Version: Mac OS X 10.5.5 (9F33)
      Kernel Version: Darwin 9.5.0
      Boot Volume: Main
      Boot Mode: Normal
      Computer Name: phoenix
      User Name: Douglas F Shearer (dougal)
      Time since boot: 2 days 16:55

要么:

sw_vers

得到:

ProductName:    Mac OS X
ProductVersion: 10.5.5
BuildVersion:   9F33

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有