iOS开发网络篇—多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件.因为实现过程较为复杂,所以下面贴出完整的代码. 实现思路:下载开始,创建一个和要下载的文件大小相同的文件(如果要下载的文件为100M,那么就在沙盒中创建一个100M的文件,然后计算每一段的下载量,开启多条线程下载各段的数据,分别写入对应的文件部分). 项目中用到的主要类如下: 完成的实现代码如下: 主控制器中的代码: 1 #import "YYViewControl…
使用二进制数据对象的,从制定网站获取数据的方法,下载网络图片,并转化为二进制数据,然后将二进制数据保存到磁盘 按照注释需要进行阅读以下代码 // Created by JinXin on 15/12/2. // Copyright © 2015年 JinXin. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewControll…
通过Reachability库,检测设备的网络连接状况. 使用到的类库:Reachability Reachability库,是一个iOS环境下,检测设备网络状态的库,可以在网络上搜索下载. 使用之前导入到工程内. 之后在视图控制器文件(ViewController.m)内添加以下代码 导入网络状态库  #import "Reachability.h" // 用于检测网络是否存在函数 -(BOOL)isExistenceNetwork { BOOL isExistenceNetwork…
通过Post请求方式,异步获取网络数据,异步请求不会阻塞主线程,而会建立一个新的线程来操作. 代码如下 ViewController.h文件 #import <UIKit/UIKit.h> // 1.添加网络代理协议 @interface ViewController : UIViewController<NSURLConnectionDataDelegate> // 2.添加一个属性,用来接受网络数据. @property(nonatomic) NSData *receiveDa…
通过Post请求方式,同步获取网络数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据 在ViewController.m文件内的viewDidLoad函数添加一下测试代码 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 1.建立一个网址对象,指定请求数据的网址 NSURL *url = [NSUR…
通过Get请求方式,异步获取网络数据,异步请求不会阻塞主线程(用户界面不会卡死),而会建立一个新的线程. 代码如下 ViewController.h文件 // // ViewController.h // AppDemo // // Created by JinXin on 15/12/2. // Copyright © 2015年 xx. All rights reserved. // #import <UIKit/UIKit.h> // 1.添加一个协议代理 @interface View…
通过Get请求方式同步获取网络数据.一旦发送同步请求,程序将停止用户交互,直至服务器返回数据. 之后在视图控制器文件(ViewController.m)内添加以下代码 在viewDidLoad函数内添加测试代码 // 建立一个网址对象,指定请求数据的网址 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; // 在通过网址,创建网络请求对象. // 参数1:请求访问路径 // 参数2:缓存协议 // 参数3:网络请求超…
主要思想,就是创建一个与目标文件等大小的空白文件,然后分段往这个空白文件中写入数据. 可以通过发送HEAD请求,获得服务器中文件的具体大小,然后再将这样的长度分割成若干等大的数据块,在发送get请求时,通过设置 请求头信息,可以确定好单个线程中下载文件的起始长度和结束长度. 比如说,目标文件大小事900M,在下载时,开三条线程来下载,size = 300.那么第一条线程就该是0~~299M的任务 第二条线程是300~~599M的任务,第三条则是600M~~最后的大小,当不能整除时,每个size+…
通过调用设备自带的浏览器,打开百度地图 // 1.定义一个方法,用来打开谷歌地图的功能 -(IBAction)openMaps { // 2.定义一个字符串,作为百度地图的当前地理位置 废弃 NSString *addressTest = @""; // 3.请求网址路径中,如果包含中文的话,会出现请求不成功的情况.这是需要将中文参数转为美国标准信息交换代码. addressTest = [addressTest stringByAddingPercentEscapesUsingEnc…
创建一个IOSApp类 IOSApp.h文件 #import <Foundation/Foundation.h> @interface IOSApp : NSObject // 1.添加一个无参数的方法 -(void)printInfomation; // 2.添加一个有参数的方法 -(void)buyApp:(id)appName; @end IOSApp.m文件 #import "IOSApp.h" @implementation IOSApp // 3.实现头文件中无…