ios - 我如何知道在 AFNetworking 中是否执行了成功或失败 block

标签 ios objective-c afnetworking

我正在使用 AFNetworking。我创建了一个名为 MyRequest 的类,它扩展了 NSObject。我创建了一个名为 requestForPost 的方法

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"foo": variable1};
[manager POST:@"http://app.com/resources" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);


} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);

}];

当我要调用一个webservice时,我将参数字典传递给上面的方法,这样它就会执行webservice

如何,我想知道 webservice 请求是成功还是失败。我应该如何将结果传递回我在上面调用的 webserviceViewController

最佳答案

使用与 AFNetworking 相同的方式:使用 block 。一为成功,一为失败。在您的 UIViewController 中使用这种方式,您将知道您的请求是成功还是失败,以及返回的对象。

在您的 API 文件中:

- (void)yourAPIMethodWithSuccess:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure {
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSDictionary *parameters = @{@"foo": variable1};
    [manager POST:@"http://app.com/resources" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"JSON: %@", responseObject);
        success(responseObject);

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
        failure(error);
    }];
}

在你的 Controller 中:

- (void)fetchDataForRequest{
    YourAPIInstance yourAPIMethodWithSuccess:^(id expectedObject) {
        NSLog(@"Success: %@", expectedObject);
    } failure:^(NSError *error) {
        NSLog(@"Request failed: %@", [error localizedDescription]);
    }];
}

关于ios - 我如何知道在 AFNetworking 中是否执行了成功或失败 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29342262/

相关文章:

iphone - 在 iOS 中使用 AFNetworking 下载文件/图像?

ios - AFNetworking错误-'无效的JSON写入类型(NSConcreteData)'-上传音频文件时

iphone - AFNetworking setImageWithURLRequest 下载进度

ios - View Controller 的过渡 - 从左到右

ios - 参数标签 "(attributes:)"与 DispatchQueue 中的任何可用重载都不匹配

iphone - 想要一个关于 NSInputStream 和 NSoutputStream 的好教程

ios - 设置 UITableViewCell 控件数据时应用程序崩溃

在框架的某些文件中找不到 iOS 框架 header

ios - 使用 NSPersistentStoreCoordinator 的要点?

objective-c - 使用CoreTelephony在iOS设备中检测GPS