Ped*_*ira 8 macos xcode cocoa objective-c osx-mountain-lion
我在一些项目中看到过类似的东西:
#if .....
code...
#endif
Run Code Online (Sandbox Code Playgroud)
但我现在找不到它......
比方说,如果应用程序在10.8运行,应用程序会执行1项操作,如果不是应用程序执行其他操作.什么代码来检查它是否在10.8上运行?
谢谢.
Ste*_*her 23
你可能会问错误的问题.除非极少数情况下,您不应该关心用户正在运行的系统版本.相反,您应该检查您感兴趣的具体事物是否可用.
例如,如果Apple在Mac OS X 10.9中引入了您想要使用的MagicHologram类,则不会检查用户是否正在运行Mac OS X 10.9.而是检查MagicHologram类是否可用.如果是,您可以使用它.如果没有,它就不可用.它甚至不重要.也许他们正在跑10.8.但也许是五年之后,Apple决定完全放弃MagicHologram课程.
(另外,请记住,您需要弱连接到HologramKit,即提供MagicHologram类的库.)
同样,如果他们向NSString引入一个新方法,而不是检查操作系统版本,您将检查NSString是否知道新方法.
也就是说,NSApplication.h包含一个名为的外部常量NSAppKitVersionNumber
.你可以将它与常数进行比较,比如NSAppKitVersionNumber10_7
哪些(应该注意)是1138这样的数字,而不是10.7.这里只有少数几个适合的地方,主要是那些类是私有的和没有文档的,但在记录之前得到了重大改变,并成为SDK公共部分的一部分.此外,如果您想避免自那以后修复的特定错误,可能会有所帮助.
回顾一下:
NSAppKitVersionNumber
并NSAppKitVersionNumber10_7
涵盖那些类或方法检测对您而言的情况.operatingSystemVersionString
,特别列出的解析不安全.参考/更多信息:
Mon*_*olo 12
一个快速的方法是:
if ( NSAppKitVersionNumber >= NSAppKitVersionNumber10_7 ) {
// Do stuff for Lion or later
}
Run Code Online (Sandbox Code Playgroud)
更多这里.
您可以在NSApplication.h中看到所有可用的常量,您可以在Xcode中使用Open Quickly ...(Cmd-Shift O)来获取这些常量.
如果您如此倾向,头文件提供了一些令人惊讶的有趣的阅读材料.
归档时间: |
|
查看次数: |
6717 次 |
最近记录: |