iOS 检测版本更新代码-OC Veröffentlicht am 2015-11-06 | Edited on 2018-01-23 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455- (void)checkAppVersion { NSDate *now = [NSDate date]; NSTimeInterval interval = [now timeIntervalSinceDate:[DataCenter singleton].appVerCheckDate]; if (interval < 24 * 60 * 60) { // 一天内检测一次 return; } [DataCenter singleton].appVerCheckDate = now; NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/cn/lookup?id=%@", @"你的 APP 的 apple id"]; [[AFHTTPSessionManager new] GET:urlString parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) { NSArray *infoArray = [responseObject objectForKey:@"results"]; if ([infoArray count]) { NSDictionary *releaseInfo = [infoArray objectAtIndex:0]; NSString *onlineVersionString = [releaseInfo objectForKey:@"version"]; NSString *thisVersionString = [Utility versionRelease]; NSArray *onlineVersionComponents = [onlineVersionString componentsSeparatedByString:@"."]; NSArray *thisVersionComponents = [thisVersionString componentsSeparatedByString:@"."]; NSUInteger minCount = MIN(onlineVersionComponents.count, thisVersionComponents.count); BOOL onlineVerGreaterThanThisVer = NO; for (NSUInteger i = 0; i < minCount; i ++) { NSUInteger onlineVersionBit = [onlineVersionComponents[i] integerValue]; NSUInteger thisVersionBit = [thisVersionComponents[i] integerValue]; if (onlineVersionBit == thisVersionBit) { // 只要是相等就继续找下去,直至找到一个不相等的才能知道谁大谁小 continue; }else{ if (onlineVersionBit > thisVersionBit) { onlineVerGreaterThanThisVer = YES; }else{ // onlineVersionBit < thisVersionBit onlineVerGreaterThanThisVer = NO; } break; } } if (onlineVerGreaterThanThisVer == NO && onlineVersionComponents.count > thisVersionComponents.count) { onlineVerGreaterThanThisVer = YES; } if (onlineVerGreaterThanThisVer) { NSLog(@"APP需要更新"); self.urlApp = [releaseInfo objectForKey:@"trackViewUrl"]; [HDAlertView showAlertwithTitle:HDLocalized(@"Note") message:HDLocalized(@"NewVersion") tiniColor:[CoreDataUpdateMethod sharedMethod].currentMoodColor delegate:self cancelButtonTitle:@"否" otherButtonTitles:@"是" ,nil].tag = 100102; } } } failure:nil];}