快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

iOS网络开发(2)使用NSURLConnection-创新互联

  • NSURLConnection介绍

    成都创新互联专注于企业营销型网站、网站重做改版、镇海网站定制设计、自适应品牌网站建设、H5开发成都做商城网站、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为镇海等各大城市提供网站开发制作服务。

NSURLConnection可以非常便捷的发送同步或异步网络请求

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *connectionError))handler

    出于各方面的考虑,苹果在iOS9.0开始弃用NSURLConnection,而是用NSURLSession代替。

  • 同步的网络请求

NSData数据类,从URL中获取数据创建对象的方法,就属于同步请求,其弊端是无法获得应答对象。

NSURLConnection提供类方法,快速发送一个异步请求

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error

   入参request:请求对象(url、请求类型、请求参数)

   出参response:响应对象

   出参error:错误对象(如果出错的话)

   返回值:响应数据

如:请求获取一个图片资源

   iOS网络开发(2)使用NSURLConnection

同步请求的弊端:

   请求过程耗时,会使当前线程阻塞,无法进行其他操作

     特别是在主线程中调用时,此过程中App将无法进行任何UI操作。

  • 异步的网络请求 — 与多线程配合

即,将同步请求的操作放在子线程中执行

   需要注意的是:子线程不能更新UI,更新UI操作需要回到主线程中完成

如:使用GCD

   iOS网络开发(2)使用NSURLConnection

  • 异步的网络请求 — 发送异步请求方法

NSURLConnection提供了一个发送异步请求的方法

+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *connectionError))handler

    异步操作,当前线程并不等待请求过程的完成,故不能通过参数或返回值获得结果

   异步操作获得结果的操作通常有几种做法:代理、通知、block

该操作使用的是block方式,block中的参数通常是获得结果(响应对象、响应数据、错误对象)

   iOS网络开发(2)使用NSURLConnection

  • 异步的网络请求 — 使用代理监听请求过程

NSURLConnection对象包含一个代理属性

     提供代理协议

常用的代理方法:

// 接收到响应对象
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
// 收到部分或全部数据
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
// 完成响应数据的接收
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
// 请求失败
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError*)error

如:

   iOS网络开发(2)使用NSURLConnection

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:iOS网络开发(2)使用NSURLConnection-创新互联
标题路径:http://6mz.cn/article/cccjcd.html

其他资讯