我有这个代码来比较当前版本和可用版本:
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)时,它写入的内容会比当前版本低。这是为什么?
最佳答案
网络结果包含换行符。在 initWithData:...
调用之后和 if
语句之前删除换行符:
avaliableVersion = [avaliableVersion stringByReplacingOccurrencesOfString:@"\n" withString:@""];
关于ios - 比较 xcode 7 中的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469789/