我经常使用这个函数在运行时测试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)的运行时确定 *** 作系统版本?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)