一句话实现appstore版本监测更新

    xiaoxiao2025-07-19  6

    由于最近公司上架项目,反应自动更新提示不好使,仔细阅读代码发现,有问题,故记录下来解决办法

    -(void)hsUpdateApp { //2先获取当前工程项目版本号 NSDictionary *infoDic=[[NSBundle mainBundle] infoDictionary]; NSString *currentVersion=infoDic[@"CFBundleShortVersionString"]; //3从网络获取appStore版本号 NSError *error; NSData *response = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/cn/lookup?id=%@",STOREAPPID]]] returningResponse:nil error:nil]; if (response == nil) { NSLog(@"你没有连接网络哦"); return; } NSDictionary *appInfoDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error]; if (error) { NSLog(@"hsUpdateAppError:%@",error); return; } NSArray *array = appInfoDic[@"results"]; if (array.count == 0) { return; } NSDictionary *dic = array[0]; NSString *appStoreVersion = dic[@"version"]; //打印版本号 NSLog(@"当前版本号:%@\n商店版本号:%@",currentVersion,appStoreVersion); //4当前版本号小于商店版本号,就更新 // if([currentVersion floatValue] < [appStoreVersion floatValue]) // { // UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"版本有更新" message:[NSString stringWithFormat:@"检测到新版本(%@),是否更新?",appStoreVersion] delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"更新",nil]; // alert.tag = 111; // [alert show]; // }else{ // NSLog(@"版本号好像比商店大噢!检测到不需要更新"); // } if ([currentVersion compare:appStoreVersion options:NSNumericSearch] == NSOrderedAscending) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"版本有更新" message:[NSString stringWithFormat:@"检测到新版本(%@),是否更新?",appStoreVersion] delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"更新",nil]; alert.tag = 111; [alert show]; }else{ NSLog(@"版本号好像比商店大噢!检测到不需要更新"); } }

    注掉的内容即为出问题的地方,floatVaule并不能精准的把版本号转换正float类型.

    转载请注明原文地址: https://ju.6miu.com/read-1300849.html
    最新回复(0)