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