如何使用块将参数传递给方法

时间:2015-07-04 06:47:29

标签: ios objective-c-blocks

我知道如果我有这样的方法

-(void) myMethod:(myCompletion) compblock{
//do stuff
compblock(YES);
}

我可以使用像这样的块来调用该方法

[self myMethod:^(BOOL finished) {
if(finished){
    NSLog(@"success");
}
}];

如果此myMethod有几个像这样的参数

-(void)myMethod :(NSMutableURLRequest *)request :(BOOL)isGet :(NSMutableDictionary *)jsonBody :(myCompletion) compblock

如何修改上述块以传递多个参数

请帮帮我

1 个答案:

答案 0 :(得分:0)

试试这样:

-(void)myMethodWithRequest:(NSMutableURLRequest *)request myBool:(BOOL)isGet dictionary:(NSMutableDictionary *)jsonBody  block:(void (^)(NSMutableURLRequest *, BOOL, NSMutableDictionary *))compblock;

-(void)myMethodWithRequest:(NSMutableURLRequest *)request myBool:(BOOL)isGet dictionary:(NSMutableDictionary *)jsonBody  block:(void (^)(NSMutableURLRequest *, BOOL, NSMutableDictionary *))compblock {

compblock(request, isGet, jsonBody);

}

虽然没有在XCode中测试过。另外,不要在你的方法中留下未命名的参数,这是一个噩梦。

我经常忘记如何正确地声明一个块,很高兴有一个很好的website