您可以使用以下方式获取操作系统版本:
[[UIDevice currentDevice] systemVersion]
但是,您应该避免依赖版本字符串作为设备或操作系统功能的指示。通常有一种更可靠的方法来检查特定功能或类是否可用。例如,您可以使用 NSClassFromString 检查 UIPopoverController 在当前设备上是否可用:
if(NSClassFromString(@"UIPopoverController")) {
// Do something
}
一些类,如 CLLocationManager 和 UIDevice,提供了检查设备功能的方法:
if([CLLocationManager headingAvailable]) {
// Do something
}
Apple 在他们的 GLSprite 示例代码中使用 systemVersion,所以我的建议不能是绝对的:
// A system version of 3.1 or greater is required to use CADisplayLink. The NSTimer
// class is used as fallback when it isn't available.
NSString *reqSysVer = @"3.1";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending)
displayLinkSupported = TRUE;
如果 currSysVer 不高于 reqSysVer,只需执行 else 语句,自动呈现一个新的 modalViewController,上面写着“需要 iOS 5”