2015-07-04 23 views
1

我知道的參數傳遞給方法如果我有這樣的如何使用塊

-(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

嘗試這樣的:

-(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

+0

你的意思是我想改變myMethod?但在該方法中,我只想將該NSString值分配給我的塊。我不需要分配請求和可變數組到塊 – IRD

+0

@IRD看來我沒有正確理解你的問題。我還不清楚你想達到什麼目的。用更多信息更新您的問題,並嘗試使它更容易理解。 – NKorotkov