2011-10-12 60 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

相关问题