程序中如何判断iOs的版本

来源:互联网 发布:网络协议分层口诀 编辑:程序博客网 时间:2024/05/07 02:51

问:

I want to check if the iOS version of the device is greater then the 3.1.3 I tried things like [[UIDevice currentDevice].systemVersion floatValue]

but does not work, I just want a if (version > 3.1.3) { }

Does anybody know how to do this?

Thanks


答:

You can get the OS version using:

[[UIDevice currentDevice] systemVersion]

However, you should avoid relying on the version string as an indication of device or OS capabilities. There is usually a more reliable method of checking whether a particular feature or class is available. For example, you can check if UIPopoverController is available on the current device usingNSClassFromString:

if(NSClassFromString(@"UIPopoverController")) {    // Do something}

Some classes, like CLLocationManager and UIDevice, provide methods to check device capabilities:

if([CLLocationManager headingAvailable]) {    // Do something}

Apple uses systemVersion in their GLSprite sample code, so my recommendation can't be absolute:

// 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;

Important Note: If for whatever reason you decide that systemVersion is what you want, make sure to treat it as an string or you risk truncating the minor revision number (eg. 3.1.2 -> 3.1).


原创粉丝点击