iOS 检查版本号的代码

- (void)checkNewVersion{

if ([@"appStore" isEqualToString:CHANNEL]) {

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

NSString *url = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@", APPLE_ID];

[manager POST:url sign:nil token:self.user.token parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

id obj = [responseObject objectForKey:@"results"];

if (obj && [obj isKindOfClass:[NSArray class]]) {

versionResult = [obj lastObject];    //NSMutableDictionary     *versionResult;

if ([versionResult isKindOfClass:[NSMutableDictionary class]]) {//versionResult是全局的

NSString *newVersion = [versionResult objectForKey:@"version"];//appstore的版本

NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];

NSString *currentVersion = [infoDict objectForKey:@"CFBundleVersion"];//本地软件版本

if (newVersion && [currentVersion compare:newVersion] == NSOrderedAscending) {

UIAlertView *newVersionAlert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"检测到可用的新版本%@",newVersion]

message:[NSString stringWithFormat:@"%@",[versionResult objectForKey:@"releaseNotes"]]

delegate:self

cancelButtonTitle:@"稍后再说"

otherButtonTitles:@"马上升级",nil];

newVersionAlert.tag = NEW_VERSION_ALERT;//用于标记当前alert

[newVersionAlert show];

}

}

}

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"Error: %@", error);

}];

} else {

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

NSString *url = CHECK_VERSION_URL;

[manager POST:url sign:nil token:self.user.token parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

NSString *newVersion = [responseObject objectForKey:@"vcode"];

NSString *newDesc = [responseObject objectForKey:@"vdesc"];

NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];

NSString *currentVersion = [infoDict objectForKey:@"CFBundleVersion"];//本地软件版本

if (newVersion && [currentVersion compare:newVersion] == NSOrderedAscending) {

UIAlertView *newVersionAlert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"检测到可用的新版本%@",newVersion]

message:newDesc

delegate:self

cancelButtonTitle:@"稍后再说"

otherButtonTitles:@"马上升级",nil];

newVersionAlert.tag = NEW_VERSION_ALERT;//用于标记当前alert

[newVersionAlert show];

}

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"Error: %@", error);

}];

}

}

//点击马上升级的代理

#pragma mark UIAlertView Delegate

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

[super alertView:alertView clickedButtonAtIndex:buttonIndex];

if (alertView.tag == NEW_VERSION_ALERT) {

//新版本提示框

if (buttonIndex == 1) {

if ([@"appStore" isEqualToString:CHANNEL]) {

//跳转到App Store

if ([versionResult isKindOfClass:[NSMutableDictionary class]]) {

UIApplication *application = [UIApplication sharedApplication];

NSString *trackViewUrl = [versionResult objectForKey:@"trackViewUrl"];

[application openURL:[NSURL URLWithString:[trackViewUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];

}

} else {

UIApplication *application = [UIApplication sharedApplication];

NSString *trackViewUrl = APP_DOWNLOAD_URL;

[application openURL:[NSURL URLWithString:[trackViewUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];

}

}

}

}

//黄色标记的为,#define得到的

如果需要检查版本的话,可直接复制一下代码,其中再大致修改一下

时间: 2024-11-08 09:29:08

iOS 检查版本号的代码的相关文章

[iOS笔记]《编写高质量iOS与OS X代码的52个有效方法》:1.熟悉Objective-C

简介: 最近公司项目收尾,可以有时间看看书了.<编写高质量iOS与OS X代码的52个有效方法>这本书讲解了很多iOS开发的技巧和规范,大力推荐! 下面是自己看书时整理的笔记,照惯例先上目录: 目录: 第一章:熟悉Objective-C 第二章:Object.Message.Runtime 第三章:接口与API设计 第四章:Protocol与Category 第五章:内存管理 第六章:Block与GCD 第七章:系统框架 第一章    熟悉Objective-C 第1条:了解Objective

iOS书写高质量代码之耦合的处理 干货!

iOS书写高质量代码之耦合的处理 耦合是每个程序员都必须面对的话题,也是容易被忽视的存在,怎么处理耦合关系到我们最后的代码质量.今天Peak君和大家聊聊耦合这个基本功话题,一起捋一捋iOS代码中处理耦合的种种方式及差异. 简化场景 耦合的话题可大可小,但原理都是相通的.为了方便讨论,我们先将场景进行抽象和简化,只讨论两个类之间的耦合. 假设我们有个类Person,需要喝水,根据职责划分,我们需要另一个类Cup来完成喝水的动作,代码如下: 1 2 3 4 5 6 7 8 9 //Person.h

给iOS程序添加push代码

给iOS程序添加push代码 Adding Code for a Push Enabled iOS Application 现在,我们开始开发项目,为了使该App能够接受push通知,我们需要对程序进行一些修改. We are now ready to start programming. We need to make a few modification to the app delegate in order to receive push notifications. 1. 给当前设备注

iOS_SN_BlueTooth (二)iOS 连接外设的代码实现

原文:http://www.cocoachina.com/ios/20150917/13456.html?utm_source=tuicool&utm_medium=referral 上一篇文章介绍了蓝牙的技术知识,这里我们具体说明一下中心模式的应用场景.主设备(手机去扫描连接外设,发现外设服务和属性,操作服务和属性的应用.一般来说,外设(蓝牙设备,比如智能手环之类的东西),会由硬件工程师开发好,并定义好设备提供的服务,每个服务对于的特征,每个特征的属性(只读,只写,通知等等),本文例子的业务场

iOS 编译含C++代码出现ld: symbol(s) not found for architecture i386错误之解决(转载)

最近项目需要搭建自己的IM服务器,在快速配置好Openfire之后,开始研究使用gloox开发XMPP客户端实现通信, 先下载gloox源码,然后./configure,make ,sudo make install,在/usr/local/下找到头文件夹和静态库,加到项目中,然后加入openssl库,编写测试代码,编译,报错:XXX not being for architecture i386,感觉是gloox静态库有问题(排除了网上说的头文件路径缺失.building phases没添加.

ios图片瀑布流代码

ios瀑布流,实现简单的瀑布流视图布局,可以显示网络图片,下拉刷新,上拉加载更多. 下载:http://www.huiyi8.com/sc/9087.html ios图片瀑布流代码,布布扣,bubuko.com

ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的

解决办法:把1删掉 2选择debug模式 ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的,布布扣,bubuko.com

[ios源码] 仿闲鱼二手交易平台-iOS源码-捡代码论坛

仿闲鱼二手交易平台-iOS源码-捡代码论坛 添加 首页模块和我的模块 首页水平滑动图利用自定义UICollectionViewFlowLayout实现 利用KVC,基于系统自带tabBar的进行定制实现底部TabBar. 页面跳转转场动画效果 封装刷新控件,仿闲鱼动画效果 动图演示(5.4M): Tag:闲鱼,iOS,动画,UICollectionView,视图布局 下载地址: 仿闲鱼二手交易平台-iOS源码-捡代码论坛http://bbs.jiandaima.com/thread-714-1-

iOS开发中的那些的约定俗成(1)————《编写高质量iOS与OS X代码的52个有效方法》读书笔记(第一章)

iOS开发中的那些的约定俗成(1) ----<编写高质量iOS与OS X代码的52个有效方法>读书笔记(第一章) 前言 "我要成为一个高产的开发人员.""想要混的好,就得多努力." 写这些东西是因为毕竟看了书,但是看书看过去之后,也许印象不是很深刻,有些东西现在也理解不了,那我就把我理解的,现在就可以用到的东西,简单的写出来就好,让自己今后看到就能明白其中的意思. 还有就是锻炼一下表达,编辑能力,慢慢的提升自己,随时随地的都要有一个锻炼的心. 最后当然就