我用这个代码
#define IS_IOS7 (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)
查找应用程序是否在iOS7上运行.
但我现在需要知道它是否在iOS7.1上运行,但是没有任何NSFoundationVersionNumber_iOS_7_0和NSFoundationVersionNumber_iOS_7_1
我知道的定义
#define NSFoundationVersionNumber_iOS_6_1 993.00
所以也许我可以比较高于993的数字,但我不知道.
有人得到安全可靠的解决方案吗?
解决方法
有几种方法可以做到这一点,你可以在SO上的几个答案中轻松找到它们.这里有一些:
[[UIDevice currentDevice] systemVersion]
稍微复杂一点,测试:
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) { // iOS7... }
您可以添加更完整的方法来测试这样的版本:
/* * System Versioning Preprocessor Macros */ #define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame) #define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending) #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending) #define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending) /* * Usage */ if (SYSTEM_VERSION_LESS_THAN(@"4.0")) { ... } if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"3.1.1")) { ... }
资料来源:
How can we programmatically detect which iOS version is device running on?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。