我有一个方法调用(它是来自 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]);
}];
我试图将成功和失败块提取到一个单独的变量中,稍后我可以将其传递给该方法。但我不知道如何将块声明为变量。我想做这样的事情:
IDontKnowWhatKindOfDataTypeGoesHere successBlock = ^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
NSLog(@"IP Address: %@", [JSON valueForKeyPath:@"origin"]);
}
失败块也是如此。
因此,我希望AFJSONRequestOperation
像这样拨打电话:
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:successBlock failure:failureBlock];
但是我不知道successBlock和failureBlock的数据类型应该是什么。
我想这更适合组织。我的成功块中有很多代码,Xcode 推送的自动格式化都在屏幕的右侧,这非常烦人。所以如果我能把它拉出来(这应该是可能的,对吧),那么我就可以更好地组织我的代码。
谢谢!