NSURLSession的介绍与基本用法
来源:互联网 发布:我的同桌是极品网络剧 编辑:程序博客网 时间:2024/05/09 02:48
对比
NSURLConnection中的存在很多问题,例如:
NSURLConnection是IOS2.0推出的古老而又经典的网络解决方案。
复杂的网络请求需要使用代理进行实现。
代理方式默认在主线程工作。
只提供了start&cancel方法,不能暂停。
在使用多线程时需要使用运行循环。
-------------------------------------------
NSURLSession是IOS7中新的网络接口,,与NSURLConnection是并列的。
当程序在前台时,NSURLSession与NSURLConnection大部分可以互相替代。
NSURLSession支持后台网络操作,除非用户强行关闭。
NSURLSession提供的功能:
通过URL将数据下载到内存。
通过URL将数据下载的到文件系统。
将数据上传到指定URL。
在后台完成上述功能。
对于小型数据,例如用户登录、下载小图像、JSON&XML仍然使用NSURLConnection的异步或者同步方法即可。
另外,我们不用再考虑NSURLSession的线程问题,因为苹果已经为我们做好了。
新建工程,代码如下:
//// ViewController.m// NSURLSession的基本使用//// Created by apple on 15/10/30.// Copyright (c) 2015年 LiuXun. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController/** 使用NSURLSession肯定是异步,在子线程做耗时操作 我们只需要创建一个Session,发起一个任务,让任务resume就OK了 */- (void)viewDidLoad { [super viewDidLoad]; // 1. url NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/videos.json"]; // 3. 由Session发起任务——异步操作 [[[NSURLSession sharedSession] dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { // 反序列化 id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@", result); // 在主线程更新UI dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"更新UI"); }); }] resume]; NSLog(@"XXXXXX");}-(void)test1{ // 1. url NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/videos.json"]; // 2. 创建一个会话Session // 苹果直接提供了一个全局的Session(单例) NSURLSession *session = [NSURLSession sharedSession]; // 3. 由Session发起任务 NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { // 反序列化 id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@", result); }]; // 需要把任务开启。任务默认都是挂起的。 [task resume]; }@end运行结果如下:
0 0
- NSURLSession的介绍与基本用法
- nsurlsession 的基本用法
- (一二七)NSURLSession的基本用法 下载与数据获取
- iOS 多线程编程<十七、NSURLSession的基本用法>
- NSURLSession的基本使用
- NSURLSession的基本使用
- NSURLSession的基本使用
- 24-NSURLSession的用法
- NSURLSession的用法
- nsurlsession 的get用法
- 94 NSURLSession的基本使用
- 关于NSURLSession的基本使用
- NSURLSession的介绍和说明
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- 安装vmware-vsphere-replication
- UINavigationController导航视图器
- Boost type_index库的实现细节
- Arduino 595多级并联 显示八位数码管
- 快乐数
- NSURLSession的介绍与基本用法
- 【csdn 第一篇】Android分区 mount 权限命令
- Jackson 2开发详解
- 出门问问面试题2016
- 二叉树路径求和
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI
- 三目运算符"?:"的透彻分析
- UIPressPhase API
- 工作日志(2015.10.30)