iOS 判斷是否有新版本更新

NSString *appleID = @"your app appleID";
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",appleID]]];
    [request setHTTPMethod:@"GET"];
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

 NSMutableDictionary *jsondata = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableLeaves error:nil];
    NSLog(@"jsondata===%@",jsondata);
    NSMutableArray *resultsArr = [jsondata objectForKey:@"results"];
    NSMutableDictionary *infodic = [resultsArr objectAtIndex:0];
    NSString *latestVersion = [infodic objectForKey:@"version"];
    NSString *trackViewUrl = [infodic objectForKey:@"trackViewUrl"];
    NSLog(@"%@",trackViewUrl);
    NSLog(@"latestVersion=%@",latestVersion);
    
    [[NSUserDefaults standardUserDefaults]setObject:trackViewUrl forKey:@"trackViewUrl"];
    NSLog(@"uurrll=%@",trackViewUrl);
    NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
    NSString *currentVersion = [infoDict objectForKey:@"CFBundleShortVersionString"];
    NSLog(@"當(dāng)前版本號是%@",currentVersion);
    NSLog(@"doublecurrent=%@",currentVersion);
    if ([currentVersion isEqualToString:latestVersion]) {
        NSLog(@"版本相同 不用更新");
        [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"updateVersion"];
        [[NSUserDefaults standardUserDefaults] setObject:@"no" forKey:@"updateVersion"];
    }else
    {   NSArray * newVerAry = [latestVersion componentsSeparatedByString:@"."];
        NSArray * curVerAry = [currentVersion componentsSeparatedByString:@"."];
        for (int i = 0; i < [newVerAry count] || i < [curVerAry count]; i++)
        {
            int newSubVer, curSubVer;
            // 如果子版本號數(shù)不足,作為0處理
            if (i >= [newVerAry count])
            {
                newSubVer = 0;
            }
            else
            {
                newSubVer = [[newVerAry objectAtIndex:i] intValue];
            }
            
            if( i >= [curVerAry count])
            {
                curSubVer = 0;
            }
            else
            {
                curSubVer = [[curVerAry objectAtIndex:i] intValue];
            }
            
            if( newSubVer > curSubVer)
            {
                NSLog(@"當(dāng)前版本低 ,需要更新");
                [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"updateVersion"];
                [[NSUserDefaults standardUserDefaults] setObject:@"yes" forKey:@"updateVersion"];
                NSLog(@"version == yes");
                return;
            }
            else if( newSubVer < curSubVer)
            {
                NSLog(@"當(dāng)前版本高 不需要更新");
                [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"updateVersion"];
                [[NSUserDefaults standardUserDefaults] setObject:@"no" forKey:@"updateVersion"];
                return;
            }
        }
        
    }

上邊是完整的判斷代碼,判斷結(jié)果保存在UserDefaults里邊,“yes”為有新版本,“no”為沒有新版本。
該方法適用于APP版本為1.0.0這種格式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 因為要結(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細(xì)...
    uniapp閱讀 4,852評論 0 12
  • # 一度蜜v3.0協(xié)議 --- # 交互協(xié)議 [TOC] ## 協(xié)議說明 ### 請求參數(shù) 下表列出了v3.0版協(xié)...
    c5e350bc5b40閱讀 734評論 0 0
  • 步湊: 1.得到app在商店的版本號 2.得到系統(tǒng)的版本號 3.比較版本號 如果不一致就提示更新 4.第一次提示用...
    丶逝水流年閱讀 801評論 0 3
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,753評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139

友情鏈接更多精彩內(nèi)容