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