比较xcode 7中的版本

时间:2015-09-09 01:57:47

标签: ios objective-c

我有这段代码来比较当前版本和可用版本:

NSString *currentVersion = [[NSString alloc]initWithFormat:@"%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]];

    NSError *error = nil;
    NSData *avaliableVersionData = [NSData dataWithContentsOfURL:[NSURL URLWithString:
                                                  @"http://update.blockade.tech/current-version"] options:0 error:&error];
    NSString *avaliableVersion = [[NSString alloc]initWithData:avaliableVersionData encoding:NSUTF8StringEncoding];
    if ([avaliableVersion compare:currentVersion options:NSNumericSearch] == NSOrderedDescending) {
        NSLog(@"lower");
    } else {
        NSLog(@"ok");
    }

但是当这些版本相同时(0.1.2和0.1.2),它写入比当前版本更低。为什么?

1 个答案:

答案 0 :(得分:1)

网络结果包含换行符。在initWithData:...调用之后和if语句之前删除换行符:

avaliableVersion = [avaliableVersion stringByReplacingOccurrencesOfString:@"\n" withString:@""];