Ios5 如果设备是ios 5

Ios5 如果设备是ios 5,ios5,Ios5,如何确定运行我的应用程序的设备是否为ios 5 我正在尝试使用UIAppearance类,但如果它在5以外的ios版本上运行,则会出现错误。所以我想要一个if语句,如果设备是ios5,它只运行这行代码 谢谢 编辑: 这就是解决方案 float version = [[[UIDevice currentDevice] systemVersion] floatValue]; if (version >= 5.0){ [[UINavigationBar appearance] set

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

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

谢谢

编辑: 这就是解决方案

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

if (version >= 5.0){

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

}

您可以使用

[[UIDevice currentDevice] systemVersion]
但更好的方法是检查特定功能,类似于

if(NSProtocolFromString(@"UIAppearance")) {
    // Do something
}
要查看该类是否可用,请执行以下操作。
如果不能做到这一点,还可以确保您只为iOS 5构建,并且它将只安装在iOS 5设备上。

您可以使用

[[UIDevice currentDevice] systemVersion]
但更好的方法是检查特定功能,类似于

if(NSProtocolFromString(@"UIAppearance")) {
    // Do something
}
要查看该类是否可用,请执行以下操作。
如果没有做到这一点,也可以确保您只为iOS 5构建,并且它将只安装在iOS 5设备上。

当我在iOS 4上运行它时,该检查返回nil,这是正确的,但在iOS 5上它也返回nil!所以不是NSClassFromString@UIAppearance,我使用了[[[UIDevice currentDevice]systemVersion]floatValue]。非常感谢你:NSClassFromString@UIAppearance不正确-您应该使用NSProtocolFromString@UIAppearance相反,当我在ios 4上运行该检查时,它返回nil,这是正确的,但在ios 5上它也返回nil!所以不是NSClassFromString@UIAppearance,我使用了[[[UIDevice currentDevice]systemVersion]floatValue]。非常感谢你:NSClassFromString@UIAppearance不正确-您应该使用NSProtocolFromString@UIAppearance相反。我通常使用respondsToSelector:如果测试的原因是避免在iOS 4上调用iOS 5选择器。我通常使用respondsToSelector:如果测试的原因是避免在iOS 4上调用iOS 5选择器。