我使用此代码
#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的数字进行比较,但我不知道。 有人得到安全可靠的解决方案吗?
答案 0 :(得分:9)
有几种方法可以做到这一点,你可以在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?
答案 1 :(得分:2)
尝试以下代码
float fOSVersion=[[[UIDevice currentDevice] systemVersion] floatValue];
if(fOSVersion>7.0)//if it is greater than 7.0
{
//do your stuff here
}
答案 2 :(得分:1)
定义这个marco
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
你可以查看这样的版本
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.1")){
//do something
}