2012-09-24 113 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