如何在OS X或iOS(不使用Gestalt)的运行时确定 *** 作系统版本?

如何在OS X或iOS(不使用Gestalt)的运行时确定 *** 作系统版本?,第1张

概述位于CarbonCore / OSUtils.h中的Gestalt()函数已被弃用于OS X 10.8 Mountain Lion。 我经常使用这个函数在运行时测试OS X *** 作系统版本(见下面的玩具示例)。 在Cocoa应用程序中,在运行时可以使用什么其他API来检查OS X *** 作系统版本? int main() { SInt32 versMaj, versMin, versBugFix; 位于CarbonCore / OSUtils.h中的Gestalt()函数已被弃用于OS X 10.8 Mountain lion。

我经常使用这个函数在运行时测试OS X *** 作系统的版本(见下面的玩具示例)。

在Cocoa应用程序中,在运行时可以使用什么其他API来检查OS X *** 作系统版本?

int main() {    SInt32 versMaj,versMin,versBUGFix;    Gestalt(gestaltSystemVersionMajor,&versMaj);    Gestalt(gestaltSystemVersionMinor,&versMin);    Gestalt(gestaltSystemVersionBUGFix,&versBUGFix);    printf("OS X Version: %d.%d.%d\n",versMaj,versBUGFix);}
解决方法 在OS X 10.10(和iOS 8.0)上,您可以使用[[nsprocessInfo processInfo] operatingSystemVersion],它返回一个NSOperatingSystemVersion结构体,定义为

typedef struct {    NSInteger majorVersion;    NSInteger minorVersion;    NSInteger patchVersion;} NSOperatingSystemVersion;

在nsprocessInfo中还有一个方法将为您做比较:

- (BOol)isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion)version

注意,虽然记录在OS X 10.10和更高版本中可用,operatingSystemVersion和isOperatingSystemAtLeastVersion:存在于OS X 10.9(probably 10.9.2)并按预期工作。这意味着您不必测试nsprocessInfo是否响应这些选择器,以检查您是否在OS X 10.9或10.10上运行。

在iOS上,这些方法仅在iOS 8.0后才有效。

总结

以上是内存溢出为你收集整理的如何在OS X或iOS(不使用Gestalt)的运行时确定 *** 作系统版本?全部内容,希望文章能够帮你解决如何在OS X或iOS(不使用Gestalt)的运行时确定 *** 作系统版本?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存