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);
}];
}
现在,如果我在View Controller中使用此对象,我想让它加载其数据,然后我想查看它,只有在加载数据之后。我想做的是将成功和失败块作为loadDataFromJSON
方法的参数并将它们传递给JSONRequestOperationWithRequest:success:failure
调用,但我不明白这样做的语法。
我试过了:
- (void)loadDataFromJSONWithSuccess:(^)successBlock failure:(^)failureBlock;
这不起作用,XCode说它需要一种类型。那么我怎么告诉它类型是一个传递给JSONRequestOpertation...
的块?
答案 0 :(得分:2)
- (void)loadDataFromJSONWithSuccess:(void(^)())successBlock failure:(void(^)())failureBlock;