【发布时间】:2013-12-07 06:36:21
【问题描述】:
我将我的网络功能从AFNetworking 迁移到AFNetworking v2,而不是AFHttpClient,我使用AFHTTPRequestOperationManager 来支持iOS6。
我的问题是,在 AFHttpClient 中,有一个功能可以使用
- (void)cancelAllHTTPOperationsWithMethod:(NSString *)method path:(NSString *)path;
方法,AFHTTPRequestOperationManager中没有这么明显的方法。
到目前为止,我所做的是继承 AFHTTPRequestOperationManager 并声明一个 iVar
AFHTTPRequestOperation *_currentRequest;
当我提出请求时,代码类似于
- (void)GetSomething:(NSInteger)ID success:(void (^)(MyResponse *))success failure:(void (^)(NSError *))failure
{
_currentRequest = [self GET:@"api/something" parameters:@{@"ID": [NSNumber numberWithInteger:ID]} success:^(AFHTTPRequestOperation *operation, id responseObject) {
MyResponse *response = [MyResponse responseFromDictionary:responseObject];
success(response);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
}];
}
我有一个
- (void)cancelCurrentRequest;
所有的方法都是
- (void)cancelCurrentRequest
{
if(_currentRequest) {
[_currentRequest cancel]; _currentRequest = nil;
}
}
现在,我认为这不是一个好的做法,当调用该方法时,我会收到 (NSURLErrorDomain error -999.),这就是为什么我需要一些建议来正确完成此操作。
提前谢谢你。
【问题讨论】:
标签: afnetworking-2