Joe*_*ery 14 macos cocoa macos-carbon
我有一个程序需要在Tiger上的行为略有不同于Leopard.有没有人知道系统调用,这将允许我准确地确定正在运行的Mac OS XI版本.我已经找到了许多宏定义来确定构建机器的操作系统,但是没有什么能够确定正在运行的机器的操作系统.
谢谢,乔
Nik*_*man 15
但简而言之,如果您使用的是碳,请使用Gestalt()调用,如果您使用的是Cocoa,则会有一个名为NSAppKitVersionNumber的常量,您只需检查它即可.
编辑:对于Mac OSX 10.8及更高版本,请不要再使用Gestalt().有关更多详细信息,请参阅此答案:如何在OS X或iOS(不使用Gestalt)中确定运行时的操作系统版本?
小智 13
你能检查一下能力的存在吗?例如:
if (NSClassFromString(@"NSKeyedArchiver") != Nil)
Run Code Online (Sandbox Code Playgroud)
要么
if ([arrayController respondsToSelector: @selector(selectedIndexes)])
Run Code Online (Sandbox Code Playgroud)
然后你知道操作系统做你需要它做的事情,而不是Apple的产品营销组给它一个特定的数字;-)
在终端:
system_profiler SPSoftwareDataType
Run Code Online (Sandbox Code Playgroud)
得到:
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
Run Code Online (Sandbox Code Playgroud)
要么:
sw_vers
Run Code Online (Sandbox Code Playgroud)
得到:
ProductName: Mac OS X
ProductVersion: 10.5.5
BuildVersion: 9F33
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21042 次 |
最近记录: |