如果iOS5可用,我如何检查并有条件地编译/运行代码?
答案 0 :(得分:5)
您可以像systemVersion
那样查看UIDevice
的{{1}}属性:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0f) {
// Do something
}
但我个人不喜欢那种方法,因为我不喜欢解析从systemVersion
返回的字符串以及那样做的比较。
最好的方法是检查你想要使用的类/方法是否存在。例如:
如果您想使用Twitter框架中的TWRequest
:
Class twRequestClass = NSClassFromString(@"TWRequest");
if (twRequestClass != nil) {
// The class exists, so we can use it
} else {
// The class doesn't exist
}
或者如果您想使用iOS 5.0中引入的startMonitoringForRegion:
中的CLLocationManager
:
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
...
if ([locationManager respondsToSelector:@selector(startMonitoringForRegion:)]) {
// Yep, it responds
} else {
// Nope, doesn't respond
}
一般来说,做这样的检查比查看系统版本更好。
答案 1 :(得分:4)
试试这段代码:
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0)
{
//Do stuff for iOS 5.0
}
希望这会对你有所帮助。