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...
呢?