0

Obj-C 的新手,我试图了解如何从方法参数中接受一个块并传递给另一个方法。

所以,假设我有一个可以从 JSON 加载数据的基本对象(继承自 NSObject)。它有一个这样的方法:

- (void)loadDataFromJSON
{
  NSMutableURLRequest *request = [http requestWithMethod:@"GET" path:MY_PATH parameters:MY_PARAMS];

  AFJSONRequestOperation *operation =
  [AFJSONRequestOperation JSONRequestOperationWithRequest:request
                                                  success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
                                                    NSLog(@"success: %@",JSON);
                                                  }
                                                  failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
                                                    NSLog(@"failure: %@",JSON);
                                                  }];

}

现在,如果我在视图控制器中使用这个对象,我想让它加载它的数据,然后我想查看它,只有在数据加载之后。我想做的是将成功和失败块作为loadDataFromJSON方法的参数并将它们传递给JSONRequestOperationWithRequest:success:failure调用,但我不明白这样做的语法。

我试过了:

- (void)loadDataFromJSONWithSuccess:(^)successBlock failure:(^)failureBlock;

这不起作用,XCode 说它需要一个类型。那么我如何告诉它类型是要传递给的块JSONRequestOpertation...呢?

4

1 回答 1

2
- (void)loadDataFromJSONWithSuccess:(void(^)())successBlock failure:(void(^)())failureBlock;
于 2013-05-27T15:45:43.200 回答