iOS 版本更新

本文介绍了一个用于检查 iOS 应用版本是否为最新版本的方法。通过调用 iTunes API 获取应用信息并比较本地版本号来判断是否有新版本可用。若有新版本,则提示用户更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

func checkAppVersion(url : String!){
        var infoDic : [NSObject:AnyObject] = NSBundle.mainBundle().infoDictionary!
        debugPrintln("infoDictionary-\(infoDic.description)")
        var curVersion : String = infoDic["CFBundleShortVersionString"] as! String //infoDic["CFBundleVersion"] as! String
        var appId :String = "994077755"//infoDic["CFBundleIdentifier"] as! String
        var requestUrl :NSURLRequest! = NSURLRequest(URL:NSURL(string:"http://itunes.apple.com/lookup?id=\(appId)")!) as NSURLRequest
        var operation : AFHTTPRequestOperation = AFHTTPRequestOperation(request:requestUrl)
        
        operation.setCompletionBlockWithSuccess({ (op : AFHTTPRequestOperation!, responseObject :AnyObject!) -> Void in
            var error :NSError? = nil
            if responseObject == nil {
                return
            }
            if responseObject is NSData{
                if NSJSONSerialization.JSONObjectWithData(responseObject as! NSData, options: NSJSONReadingOptions.MutableContainers, error: &error) is NSDictionary {
                    
                    //responseObject.responseData as NSData
                    var json : NSDictionary! = NSJSONSerialization.JSONObjectWithData(responseObject as! NSData, options: NSJSONReadingOptions.MutableContainers, error: &error) as! NSDictionary //Dictionary <AnyObject,String>
                    if error == nil {
                        if json != nil {
                            debugPrintln("responseObject -----\(json)")
                            var resultCount : Int! = json.valueForKey("resultCount")?.integerValue!
                            if resultCount == 1 {
                                var resultArray : Array<AnyObject>! = json.valueForKey("results") as! Array<AnyObject>
                                var resultDict: AnyObject = resultArray[0]
                                var resultVersion : String! = resultDict.valueForKey("version") as! String
                                if resultVersion > curVersion {
                                    debugPrintln("当前版本不是最新")
                                    if self.block_checked != nil {
                                        self.block_checked(resultDict)
                                    }
                                    return
                                }
                                debugPrintln("当前版本是最新")
                                
                            }
                        }
                    }
                }
            }
            }, failure: { (op :AFHTTPRequestOperation!,err: NSError!) -> Void in
                debugPrintln("err -----\(err)")
                
        })
        operation.start()
    }


调用检查更新的方法:

checkVersion.checkAppVersion(nil)
        checkVersion.block_checked = {
            (obj : AnyObject!) in
            self.getAlertTitle("现在有新版本了,是否更新?", obj: obj)
        }

有新版本时,尽量清除启动页的Key

 func getAlertTitle(title:String!,obj:AnyObject!){
        alert = SYUIView_Alert_base(title: nil, message: title, cancelButtonTitle:"暂不", otherButtonTitles: ["现在更新"])
        alert.showAlertInViewController(self.tabBarController!)
        alert.block_Done = {
            (item:AnyObject!)  in var traceUrl : String! = obj.valueForKey("trackViewUrl") as! String
            if traceUrl != nil {
                NSUserDefaults.standardUserDefaults().removeObjectForKey("everLaunched")
                NSUserDefaults.standardUserDefaults().synchronize()
                UIApplication.sharedApplication().openURL(NSURL(string: traceUrl)!)
            }
        }
        
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值