iOS判断系统版本号的方法

2017-07-28  本文已影响150人  罗淞

很多系统方法都有版本支持的说明,所以对于支持多个系统版本,需要判断系统版本来执行方法。
比如:

+ (NSURLSessionConfiguration *)backgroundSessionConfiguration:(NSString *)identifier NS_DEPRECATED(NSURLSESSION_AVAILABLE, 10_10, 7_0, 8_0, "Please use backgroundSessionConfigurationWithIdentifier: instead");
+ (NSURLSessionConfiguration *)backgroundSessionConfigurationWithIdentifier:(NSString *)identifier NS_AVAILABLE(10_10, 8_0);

第一个方法只支持7-8版本,第二个8版本以后开始起用。

    NSString * systemVersion = [UIDevice currentDevice].systemVersion;
    if (systemVersion.doubleValue >= 9.0) {
        //针对 9.0 以上的iOS系统进行处理
    }
    else{
        //针对 9.0 以下的iOS系统进行处理
    }
    if(NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_9_0) {
        //针对 9.0 以上的iOS系统进行处理
    }
    else{
        //针对 9.0 以下的iOS系统进行处理
    }
if (NSClassFromString(@"UNNotification")) {
        // 存在这个类 iOS 10.0 以上系统的处理
    } else {
        // iOS 10.0 以下系统的处理
    }
    if ([UIFont respondsToSelector:@selector(preferredFontForTextStyle:compatibleWithTraitCollection:)]) {
        // 存在这个方法 iOS 10.0 以上系统的处理
    } else {
        // iOS 10.0 以下系统的处理
    }

方法3、4基本上是已经知道了类或者方法的系统支持版本再进行判断了,可用性不是很高。另外,为了防止警告,可能在判断里还需要加一些宏来去掉警告,参考:#pragma GCC diagnostic 编译器警告

上一篇下一篇

猜你喜欢

热点阅读