Check iOS version at runtime?

前端 未结 11 1210
-上瘾入骨i
-上瘾入骨i 2020-12-01 03:03

This is sort of a follow on from my last question. I am using beginAnimations:context: to setup an animation block to animate some UITextLabels. However I notic

11条回答
  •  暖寄归人
    2020-12-01 03:14

    to conform to version specified in system defines

    //#define __IPHONE_2_0 20000
    //#define __IPHONE_2_1 20100
    //#define __IPHONE_2_2 20200
    //#define __IPHONE_3_0 30000
    //#define __IPHONE_3_1 30100
    //#define __IPHONE_3_2 30200
    //#define __IPHONE_4_0 40000
    You can write function like this ( you should probably store this version somewhere rather than calculate it each time ):

    + (NSInteger) getSystemVersionAsAnInteger{
        int index = 0;
        NSInteger version = 0;
    
        NSArray* digits = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
        NSEnumerator* enumer = [digits objectEnumerator];
        NSString* number;
        while (number = [enumer nextObject]) {
            if (index>2) {
                break;
            }
            NSInteger multipler = powf(100, 2-index);
            version += [number intValue]*multipler;
            index++;
        }
    return version;
    }
    

    Then you can use this as follows:

    if([Toolbox getSystemVersionAsAnInteger] >= __IPHONE_4_0)
    {
      //blocks
    } else 
    {
      //oldstyle
    }
    

提交回复
热议问题