我有一个方法调用(这是来自AFNetworking的调用):
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
NSLog(@"IP Address: %@", [JSON valueForKeyPath:@"origin"]);
} failure:^(NSURLRequest *request , NSURLResponse *response , NSError *error , id JSON)
{
NSLog(@"Failed: %@",[error localizedDescription]);
}];
Run Code Online (Sandbox Code Playgroud)
我试图把成功和失败的块拉成一个单独的变量,我以后可以将其传递给该方法.但我无法弄清楚如何将块声明为变量.我想做这样的事情:
IDontKnowWhatKindOfDataTypeGoesHere successBlock = ^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
NSLog(@"IP Address: %@", [JSON valueForKeyPath:@"origin"]);
}
Run Code Online (Sandbox Code Playgroud)
和failureBlock一样.
那么我正打算AFJSONRequestOperation像这样打电话:
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:successBlock failure:failureBlock];
Run Code Online (Sandbox Code Playgroud)
但我不知道successBlock和failureBlock的数据类型应该是什么.
我认为这更适合组织.我的successBlock中有很多代码,Xcode推送的自动编码都在屏幕的右侧,这完全令人讨厌.所以如果我能把它拉出来(这应该是可能的,那么),那么我可以更好地组织我的代码.
谢谢!