2011-10-12 61 views

回答

6

您通常不想檢查操作系統版本,而是想要查看您要查找的特定選擇器是否存在。

if ([fooAlertView respondsToSelector:@selector(alertViewStyle)]) 
    //Yay! 
+0

我想會有這樣的事情:if(iosVersion> = 5)letgo。但是測試選擇器是有道理的! – Toad

+0

我發現有些情況下,上述測試並不總是像我預料的那樣。我會對一個AVAudioPlayer的setEnableRate實例進行測試,即使在iOS上運行時,它總是會失敗,甚至在實際調用setEnableRate時:對剛剛測試的對象實際上會成功! –

2
NSString *sysVer = [[UIDevice currentDevice] systemVersion]; 

這應該可以做到。確保將其保留爲字符串。

+0

想過它後,約書亞的回答會更合適。由於iOS 6很可能具有相同的功能,因此您必須修改代碼。 – mkral

+0

奇怪的是版本是一個字符串,所以你不能說如果(sysver> 5.0)。感謝指針! – Toad

+0

那麼你可以使用它作爲一個雙重的,但很容易犯錯。使用選擇器確實是最好的情況,因爲您不確定是否> 5.0將支持您所需的選擇器。 – mkral

相關問題