您的位置:首页 > 理论基础 > 计算机网络

asiHttpRequest 取消访问的时候跳exc_bad_access

2015-10-22 15:55 645 查看
在stackoverflow.com上,有网友提出了两个解决方法。

第一个,使用同一的delegate,并且应用一运行就初始化它。如果其他类要调用异步请求,将delegate发过去。

调用方法如下:

- (void)sendUrl: (NSString *) restUrl withCallBack:(NSObject*) delegate;

然后,在delegate的实现方法中利用request的tag来标识来自哪一个类的异步调用。

第二个,使用block直接实现异步请求,抛弃delegate。

使用"setCompletionBlock:^"代替delegate的"setDidFinishSelector"。

request做一个设置就可以,比原来通过设置request.delegate再实现delegate的方法简单多了。

[request setCompletionBlock :^{

// 请求响应结束,返回 responseString

NSString *responseString = [request responseString ]; // 对于 2 进制数据,使用 NSData 返回 NSData *responseData = [request responseData];

NSLog ( @"%@" ,responseString);

}];

[request setFailedBlock :^{

// 请求响应失败,返回错误信息

NSError *error = [request error ];

NSLog ( @"error:%@" ,[error userInfo ]);

}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: