How to check iOS version?

后端 未结 30 2974
一生所求
一生所求 2020-11-21 06:37

I want to check if the iOS version of the device is greater than 3.1.3 I tried things like:

[[UIDevice currentDevice].systemVersion         


        
30条回答
  •  抹茶落季
    2020-11-21 07:21

    As a variation of yasimturks solution, I defined one function and a few enum values instead of five macros. I find it more elegant, but that's a matter of taste.

    Usage:

    if (systemVersion(LessThan, @"5.0")) ...
    

    .h file:

    typedef enum {
      LessThan,
      LessOrEqual,
      Equal,
      GreaterOrEqual,
      GreaterThan,
      NotEqual
    } Comparison;
    
    BOOL systemVersion(Comparison test, NSString* version);
    

    .m file:

    BOOL systemVersion(Comparison test, NSString* version) {
      NSComparisonResult result = [[[UIDevice currentDevice] systemVersion] compare: version options: NSNumericSearch];
      switch (test) {
        case LessThan:       return result == NSOrderedAscending;
        case LessOrEqual:    return result != NSOrderedDescending;
        case Equal:          return result == NSOrderedSame;
        case GreaterOrEqual: return result != NSOrderedAscending;
        case GreaterThan:    return result == NSOrderedDescending;
        case NotEqual:       return result != NSOrderedSame;
      }
    }
    

    You should add your app's prefix to the names, especially to the Comparison type.

提交回复
热议问题