完成后如何让AFHTTPRequestOperation调用选择器而不是块?

时间:2012-11-05 15:56:11

标签: iphone ios asihttprequest grand-central-dispatch afnetworking

AFHTTPRequestOperation喜欢在请求操作完成后调用GCD块。有没有办法让它调用方法选择器?我正在将我的应用从ASIHTTPRequest转换为AFNetworking,而我的应用是围绕选择器而不是块构建的。

2 个答案:

答案 0 :(得分:3)

您可以在完成块内调用您的选择器:

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:urlRequest
        success:^(NSURLRequest *completedURLRequest, NSHTTPURLResponse *response, NSDictionary *json) {
            [self callMyCustomSuccessMethod:json];
        }
        failure:^(NSURLRequest *errorRequest, NSHTTPURLResponse *response, NSError *error, id JSON) {
            [self callMyCustomErrorMethod:error];
        }];
[operation start];

答案 1 :(得分:2)

不确定AFHTTPRequestOperation是否支持基于选择器的回调,但您可以轻松地将调用包装到块中的选择器中:

success:^(AFHTTPRequestOperation *operation, id responseObject) {
   [myDelegate onSuccess:operation];
}

这适用于声明为:

的回调方法
- (void)onSuccess:(AFHTTPRequestOperation*)operation;