objective-c – 如何知道应用程序运行的Mac OS?

objective-c – 如何知道应用程序运行的Mac OS?,第1张

概述我在一些项目中看到过类似的东西: #if ..... code...#endif 但我现在找不到它…… 比方说,例如,如果应用程序在10.8运行,应用程序会执行1项 *** 作,否则应用程序会执行其他 *** 作. 什么代码来检查它是否在10.8上运行? 谢谢. 你可能会问错误的问题.除非极少数情况下,您不应该关心用户正在运行的系统版本.相反,您应该检查您感兴趣的具体事物是否可用. 例如,如果Apple 我在一些项目中看到过类似的东西:

#if .....    code...#endif

但我现在找不到它……
比方说,例如,如果应用程序在10.8运行,应用程序会执行1项 *** 作,否则应用程序会执行其他 *** 作.
什么代码来检查它是否在10.8上运行?
谢谢.

解决方法 你可能会问错误的问题.除非极少数情况下,您不应该关心用户正在运行的系统版本.相反,您应该检查您感兴趣的具体事物是否可用.

例如,如果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公共部分的一部分.此外,如果您想避免自那以后修复的特定错误,可能会有所帮助.

回顾一下:

>检测个别类别和方法,这些类别和方法应涵盖99.44%的案例.
>使用NSAppKitVersionNumber和NSAppKitVersionNumber10_7来涵盖类或方法检测对您而言的情况.
>前两点涵盖所有正常情况.你不应该再进一步了.但是如果你必须有基于人性化版本的行为,请看下面的abarnert答案.这是获得它们的最佳方式.
>不要使用operatingSystemVersionString,它特别列为解析不安全.

参考/更多信息:

> SDK Compatibility Guide“如果您希望应用程序针对特定版本或多个版本的iOS或Mac OS X,请阅读本文档.”

> Using SDK-Based Development描述如何使用弱链接的类,方法和函数来支持在多个版本的 *** 作系统上运行.

总结

以上是内存溢出为你收集整理的objective-c – 如何知道应用程序运行的Mac OS?全部内容,希望文章能够帮你解决objective-c – 如何知道应用程序运行的Mac OS?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1035306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存