NSURLConnection和NSRunLoop】的更多相关文章

主线程中创建一个NSURLConnection并异步运行 [self performSelectorOnMainThread:@selector(start) withObject:nil waitUntilDone:YES]; - (void)start { //step 1:请求地址 NSURL *url = [NSURL URLWithString:@"www.2cto.com"]; //step 2:实例化一个request NSURLRequest *request =[NS…
尽管NSURLConnection已经不建议使用了,iOS 7取而代之的是NSURLSession,但是本文依然打算剖析一下,其中一些思想还是值得学习一下,如果您不用NSURLConnection,并且也不打算尝试使用,可以跳过本文. 一.概念介绍 NSURLConnection是2003年随着第一版Safari的发布而发布的,它不单单是一个网络请求类,而是指代Foundation框架的URL系统中的一系列关联的组件:NSURLRequest.NSURLResponse.NSURLProtoco…
网络 基本概念 客户端:client 服务器:server 请求:request 响应:response 过程 客户端 -> 发送请求 -> 服务器(连接数据库) 服务器 -> 发送响应 -> 客户端 客户端(移动端) 前段(前台) iOS,Android 服务器(后端) 后台 Java.PHP..NET 远程服务器-面向所有用户(上线) 本地服务器-面向公司内部(测试) URL URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找…
目前在 iOS 和 OS X 中有两套先进的同步 API 可供我们使用:NSOperation 和 GCD .其中 GCD 是基于 C 的底层的 API ,而 NSOperation 则是 GCD 实现的 Objective-C API. 虽然 NSOperation 是基于 GCD 实现的, 但是并不意味着它是一个 GCD 的 “dumbed-down” 版本, 相反,我们可以用NSOperation 轻易的实现一些 GCD 要写大量代码的事情. 因此, NSOperationQueue 是被…
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute…
网络编程 网络编程是一种实时更新应用数据的常用手段 网络编程是开发优秀网络应用的前提和基础 网络基本概念 客户端(就是手机或者ipad等手持设备上面的APP) 服务器(远程服务器-本地服务器) 请求(客户端索要数据的方式) 响应(需要客户端解析数据) 数据库(服务器的数据从哪里来) HTTP URL 如何找到服务器(通过一个唯一的URL) URL介绍 统一资源定位符 url格式(协议\主机地址\路径) 协议:不同的协议,代表着不同的资源查找方式.资源传输方式 主机地址:存放资源的主机(服务器)的…
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ), ^{ NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:…
前言 @interface NSURLConnection : NSObject class NSURLConnection : NSObject DEPRECATED: The NSURLConnection class should no longer be used. NSURLSession is the replacement for NSURLConnection 从 iOS 9 开始 NSURLConnection 的大部分方法被废弃. 1.NSURLConnection NSUR…
可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行. 前面提到可以将NSTimer手动加入NSRunLoop,Cocoa库也为其它一些类提供了可以手动加入NSRunLoop的方法,这些类有NSPort.NSStream.NSURLConnection.NSNetServices,方法都是[scheduleInRunLoop:forMode:]形式.我暂时只介绍下最常用的NSURLCon…
可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行. 前面提到可以将NSTimer手动加入NSRunLoop,Cocoa库也为其它一些类提供了可以手动加入NSRunLoop的方法,这些类有NSPort.NSStream.NSURLConnection.NSNetServices,方法都是[scheduleInRunLoop:forMode:]形式.我暂时只介绍下最常用的NSURLCon…
http://blog.cnbluebox.com/blog/2014/07/01/cocoashen-ru-xue-xi-nsoperationqueuehe-nsoperationyuan-li-he-shi-yong/ 目前在 iOS 和 OS X 中有两套先进的同步 API 可供我们使用:NSOperation 和 GCD .其中 GCD 是基于 C 的底层的 API ,而 NSOperation 则是 GCD 实现的 Objective-C API. 虽然 NSOperation 是基…
今天看到了NSRunloop,其实之前也有看了关于NSRunloop的内容,在这里想简单的就个人的理解总结一下.其实自己在开发的过程当中,还没有更多的涉及到NSRunloop的功能.总的来说,NSRunloop就是类似于windows的消息机制.他的存在是给线程增加事件处理机制. 对于多线程开发而言,有两种处理方案,一种是不需要太多的交互,直接运算比较大的数据内容就可以,另一种方法是将执行函数加入到消息循环当中去,等待事件的发生,然后执行. 有了NSRunloop,会使线程的表现变得更加的好,他…
最近学习了下NSRunloop. 作一下简单的理解: 1.runloop与线程的关系,每一个线程创建是都会有伴有一个runloop诞生,runloop用来接收事件源,让线程执行事件.当没有事件处理时,runloop处于退出状态,线程休眠.其中的事件源主要包括两大类,timer事件和inpute事件.inpute事件包括很多类型:performxxx,nsurlconnection,port,touch事件等. (主线程创建的runloop不会停掉,会一直跑,有可能是空跑,但是一直在跑.其他线程的…
什么是Runloop Runloop即运行循环.为什么你的APP放在那里不去动它,在某个时间点去操作它,它还会给你反馈.就是因为Runloop的存在. 总结一下,因为Runloop的存在,保证你的程序不会死. 主要负责什么? 使程序一直运行并接受用户输入 决定程序在何时处理一些Event 调用解耦(Message Queue) 节省CPU时间(没事的时候闲着,有事的时候处理) 谁依赖NSRunloop NSTimer UIEvent autorelease NSObject(NSDelaydPe…
前言 DEPRECATED: The NSURLConnection class should no longer be used. NSURLSession is the replacement for NSURLConnection 从 iOS 9 开始 NSURLConnection 的大部分方法被废弃. 1.NSURLConnection NSURLConnection 提供了两种方式来实现连接,一种是同步的另一种是异步的,异步的连接将会创建一个新的线程, 这个线程将会来负责下载的动作.…
可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行. 前面提到可以将NSTimer手动加入NSRunLoop,Cocoa库也为其它一些类提供了可以手动加入NSRunLoop的方法,这些类有NSPort.NSStream.NSURLConnection.NSNetServices,方法都是[scheduleInRunLoop:forMode:]形式.我暂时只介绍下最常用的NSURLCon…
概述 NSURLConnection是负责发送请求,建立客户端与服务端的连接.发送数据给服务器,并收集来自服务器的响应数据.其中NSURLRequest类是用来封装一个请求,包含NSURL对象.请求方法.请求头.请求超时等信息.它有一个子类NSMutableURLRequest. 发送一个请求具体的步骤: * 创建一个NSURL对象,设置请求路径 * 入NSURL创建的一个NSRULRequest对象,设置请求头.请求体. * 使用NSURLConnection发送网络请求 NSURLConne…
- 1.1 涉及知识点(1)两种为NSURLConnection设置代理方式的区别 //第一种设置方式: //通过该方法设置代理,会自动的发送请求 // [[NSURLConnection alloc]initWithRequest:request delegate:self]; //第二种设置方式: //设置代理,startImmediately为NO的时候,该方法不会自动发送请求 NSURLConnection *connect = [[NSURLConnection alloc]initW…
(1)两种为NSURLConnection设置代理方式的区别 //第一种设置方式: //通过该方法设置代理,会自动的发送请求 // [[NSURLConnection alloc]initWithRequest:request delegate:self]; //第二种设置方式: //设置代理,startImmediately为NO的时候,该方法不会自动发送请求 NSURLConnection *connect = [[NSURLConnection alloc]initWithRequest:…
请求的步骤分为4步 1.创建请求 2.设置请求头(告诉服务器这是一个文件上传的请求) 3.设置请求体 4.发送请求 NSURLConnection实现文件上传 // 1.创建请求 NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/upload"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolic…
原文在此 一.整体介绍 NSURLConnection是苹果提供的原生网络访问类,但是苹果很快会将其废弃,且由NSURLSession(iOS7以后)来替代.目前使用最广泛的第三方网络框架AFNetworking最新版本已弃用了NSURLConnection,那我们学习它还有什么用呢? 首先,苹果弃用它还是需要时间的,最起码到iOS10之后: 现在还有一些老项目会使用NSURLConnection,特别是2013年之前的项目,用户量基础还是很大的: 另外,不得不承认,有些公司还在用类似ASI这些…
虽说现在都用三方库来获取网络数据,再不济也会用苹果官方的NSURLSession,但有些东西还是要先学会才有资格说不好不用,不是么? NSURLConnection发送请求是分为同步和异步两种方式的,同步顾名思义就是在发送请求的同时就要立刻处理,在主线程中会阻塞其他操作,如果网络请求比较耗时的话,就会影响用户体验.同步方法如下: + (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLR…
1.什么是RunLoop 运行循环 一个线程对应一个RunLoop,主线程的RunLoop默认已经启动,子线程的RunLoop得手动启动(调用run方法) RunLoop只能选择一个Mode启动,如果当前Mode中没有任何Source(Sources0.Sources1).Timer,那么就直接退出RunLoop 线程退出,则RunLoop也退出:强制退出RunLoop,RunLoop也会退出 RunLoop作用 保持程序的持续运行 处理App中的各种事件(比如触摸事件.定时器事件.Select…
iPhone应用开发中关于NSRunLoop的概述是本文要介绍的内容,NSRunLoop是一种更加高明的消息处理模式,他就高明在对消息处理过程进行了更好的抽象和封装,这样才能是的你不用处理一些很琐碎很低层次的具体消息的处理,在NSRunLoop中每一个消息就被打包在input source或者是timer source中了,来看详细内容.1.什么是NSRunLoop我们会经常看到这样的代码: - (IBAction)start:(id)sender { pageStillLoading = YE…
一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.... (3)NSMutableURLRequest:NSURLRequest的子类 (4)NSURLConnection:负责发送请求,建立客户端和服务器的连接.发送NSURLRequest的数据给服务器,并收集来自服务器的响应数据 二.NSURLConnection的使用 1.简单说明 使用NSURL…
一:NSURLConnection(IOS9.0已经弃用)是早期apple提供的http访问方式.以下列出了常用的几个场景:GET请求,POST请求,Response中带有json数据 对于NSURLConnection有以下注意事项:(1)sendAsynchronourequest: queue: completionHandler:函数中的queue参数表示的是“handler 这个block运行在queue中,如果queue为mainThread,那么hanlder就运行在主线程:所以在…
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self httpSendDataWithUrl:@"http://127.0.0.1/php/login.php" andUserName:@"zhang&san" a…
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //[self takeRequestUrlWithString:@"http://127.0.0.1/test.json"]; //[self takeRequestUrlWithString:@&…
.h文件 #import <Foundation/Foundation.h> //成功的回调 typedef void(^successBlock)(id responseObj); //失败的回调 typedef void(^failureBlock)(NSError *error); @interface HttpGBK : NSObject<NSURLConnectionDataDelegate> { successBlock _saveSuccessBlock;//用于保存…
一. 认识NSRunloop  1.1 NSRunloop与程序运行 那么具体什么是NSRunLoop呢?其实NSRunLoop的本质是一个消息机制的处理模式.让我们首先来看一下程序的入口——main.m文件,一个ios程序启动后,只有短短的十行代码居然能保持整个应用程序一直运行而没有退出,是不是有点意思?程序之所以没有直接退出是因为UIApplicationMain这个函数内部默认启动了一个跟主线程相关的NSRunloop对象,而UIApplicationMain这个函数一直执行没有返回就保存…