2012-09-24 81 views

回答

49

入住这GitHub的要点 https://gist.github.com/998472

您可以在...- Prefix.pch文件中添加代码或包括它让你可以随时随地使用它。


编辑

我要走了,你如何使用代码来自Gist,使人们可以检查它是否是对他们的情况非常有用的例子。这也可以在Gist上找到。

/* 
* Usage 
*/ 

if (SYSTEM_VERSION_LESS_THAN(@"4.0")) { 
    ... 
} 

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"3.1.1")) { 
    ... 
} 
+0

虽然我喜欢你在这个要点上的代码(就像我在那里评论过的那样),但如果你能在这个答案中包含一个例子,它会更好。 –

+0

这不是我的要点,我不会在这里包含代码,因为要点随着时间的推移而改进,并且这个答案在时间上过时。不过,我将留下一个如何使用它的例子,以便人们可以看到它是否对他们的案例有用。谢谢关心:) –

12

可以使用得到了iOS版本的字符串:

[[UIDevice currentDevice] systemVersion] 
+0

这是返回字符串? –

40

试试这个:

更新:

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 

if ([[vComp objectAtIndex:0] intValue] >= 7) { 
    // iOS-7 code[current] or greater 
} else if ([[vComp objectAtIndex:0] intValue] == 6) { 
    // iOS-6 code 
} else if ([[vComp objectAtIndex:0] intValue] > 2) { 
    // iOS-3,4,5 code 
} else { 
    // iOS-1,2... code: incompatibility warnings, legacy-handlers, etc.. 
} 

以前的代码:

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 

if ([[vComp objectAtIndex:0] intValue] == 6) { 
    // iOS-6 code 
} else { 
    // iOS-5, iOS-4... code  
} 

要特别检查IOS使用的颠覆

float sysVer = [[[UIDevice currentDevice] systemVersion] floatValue]; 

if (sysVer > 6.01) { 
    // iOS-6.01+ code 
} else { 
    // prior iOS versions 
} 
+0

如果iOS版本是6.0.1及以上版本6,您的代码仍然可以吗? –

+1

是的。只有第一个索引被选中 –

+0

这对iOS 7及更高版本来说无法适应未来。应该是'if([[vComp objectAtIndex:0] intValue]> = 6)' – colincameron