1951FDG
12/14/2015 - 10:30 PM

Objective-C NSString Version Comparator

Objective-C NSString Version Comparator

// Objective-C version comparator

- (NSComparisonResult)compareVersion:(NSString *)version1 withVersion:(NSString *)version2 {
    NSArray *version1Components = [version1 componentsSeparatedByString:@"."];
    NSArray *version2Components = [version2 componentsSeparatedByString:@"."];
    NSInteger length = MAX(version1Components.count, version2Components.count);
    for (int i = 0; i < length; i++) {
        int version1Digit = i < version1Components.count ? [version1Components[i] intValue] : 0;
        int version2Digit = i < version2Components.count ? [version2Components[i] intValue] : 0;
        if (version1Digit < version2Digit) {
            return NSOrderedAscending;
        } else if (version1Digit > version2Digit) {
            return NSOrderedDescending;
        }
    }
    return NSOrderedSame;
}