如果设备是ios 5

问题描述:

如何确定运行我的应用程序的设备是否为ios 5?如果设备是ios 5

我试图使用UIAppearance类,但它会给出一个错误,如果它运行在5以外的ios版本上。所以我想要if语句只运行这行代码,如果设备是ios5。

感谢,

编辑: 所以这里是解决方案,

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

if (version >= 5.0){ 

    [[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 

} 
+1

我通常使用'respondsToSelector:'如果测试的原因是为了避免在iOS 4上调用iOS 5选择器。 – 2012-01-30 00:08:34

你可以使用

[[UIDevice currentDevice] systemVersion] 

的OS版本,但更好的方法是检查特定功能,沿线的东西

if(NSProtocolFromString(@"UIAppearance")) { 
    // Do something 
} 

要查看该类是否可用,请执行您的操作。 如果不能确保只为iOS 5构建,并且它只会安装在iOS 5设备上。

+0

当我在ios 4上运行它时,该检查返回nil,但它也返回nil ios 5!所以不是NSClassFromString(@“UIAppearance”),而是使用[[[UIDevice currentDevice] systemVersion] floatValue]。非常感谢你:) – Mona 2012-01-29 23:58:11

+0

NSClassFromString(@“UIAppearance”)不正确 - 你应该使用NSProtocolFromString(@“UIAppearance”)来代替。 – wzs 2012-08-06 11:47:44