我知道如果我有这样的方法
-(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
如何修改上述块以传递多个参数
请帮帮我
答案 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!