1 / 38
文档名称:

ios异步请求架构.doc

格式:doc   大小:88KB   页数:38页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ios异步请求架构.doc

上传人:文库旗舰店 2018/6/5 文件大小:88 KB

下载得到文件列表

ios异步请求架构.doc

文档介绍

文档介绍:很早就在cocoachina上看到这个框架了,今天终于有机会来使用这个东东了.
我这里写一下,如何往iphone项目中添加这个框架.
步骤如下:
 
: /pokeb/asi-http-request/tree
,另外还要在 External/Reachability/
也拷贝到自己的项目中.
http://allseeing-/ASIHTTPRequest/Setup-instructions
需要额外添加的有: , ,,,
 
然后运行项目,会发现有很多xml相关的error,不用急,(这个框架不是很friendly,我们还需要做一些工作).
在xcode中project->edit project settings->然后search "search paths",
然后在path中添加/usr/include/libxml2
 
这样就ok了,可以根据官方的教程来学****了.
http://allseeing-/ASIHTTPRequest/How-to-use
 
我下了一个sample code  XMLPerformance 解析xml,我建了一个工程照着上面做,但是编译时提示错误,
error libxml/: No such file or directory
我立刻想到没有add Frameworks , 和 ,但是还是报错。
error libxml/: No such file or directory
An error on the .h is pile-time error with your Header Search Paths, not a .dylib or a linker error.
You have to ensure that /usr/include/libxml2 is in your Header Search Paths in your Release configuration。
在iphone开发中,异步操作是一个永恒的话题,尤其当iphone手机需要和远程服务器进行交互时,使用异步请求是很普遍的做法。
通常,这需要NSURLConnection和NSOperation结合起来使用。这方面的资料网络上自然有不少的介绍,不过要找一个能运行的代码也并不容易。许多文章介绍的并不全面,或者使用了过时的SDK,在新IOS版本下并不适用()。这些代码很经典,但仍然很容易使人误入歧途。
本文总结了众多文档介绍的方法和代码,揭示了异步操作中的实现细节和初学者(包括笔者)易犯的错误,使后来者少走弯路。
一、使用NSOperation实现异步请求
1、新建类,继承自NSOperation。
***@interface URLOperation : NSOperation
{
    NSURLRequest*  _request;
    NSURLConnection* _connection;
    NSMutableData* _data;
    //构建gb2312的encoding
    NSStringEncoding enc;
   
}
 
- (id)initWithURLString:(NSString *)url;
***@property (readonly) NSData *data;
***@end
接口部分不多做介绍,我们来看实现部分。
首先是带一个NSString参数的构造函数。在其中初始化成员变量。
其中enc是 NSStringEncoding 类型,因为服务器返回的字符中使用了中文,所以我们通过它指定了一个gb2312的字符编码。
许多资料中说,需要在NSOperation中重载一个叫做isConcurrent的函数并在其中返回YES,否则不支持异步执行。但是实际上,我们在这里注释了这个重载方法,程序也没有报任何错误,其执行方式依然是异步的。
***@implementation URLOperation
***@synthesize data=_data;
-