我有以下功能傳遞到座功能
- (void)loginWithCompletionBlock:(void (^)(BOOL))completion
我該如何稱呼呢?如何將BOOL作爲塊傳遞?我已經嘗試了幾種方法,而且我似乎無法理解這是如何工作的。
我有以下功能傳遞到座功能
- (void)loginWithCompletionBlock:(void (^)(BOOL))completion
我該如何稱呼呢?如何將BOOL作爲塊傳遞?我已經嘗試了幾種方法,而且我似乎無法理解這是如何工作的。
您沒有將「BOOL
作爲塊」傳遞給您,您將傳遞一個塊,稍後將傳遞一個BOOL
。
[thingy loginWithCompletionBlock:^(BOOL didSomethingInteresting){
// Your code here, using didSomethingInteresting, such as:
if(didSomethingInteresting){
// Do something even more interesting
}
else {
// Do something boring
}
}];
loginWithCompletionBlock:
據推測將要熄滅並嘗試登錄到一些服務。當嘗試已經結束,無論是成功或失敗,你的塊,這是一段可執行代碼,將運行,並將於loginWithCompletionBlock:
順便傳遞一個BOOL
值時,BOOL
的名稱可以是任何你喜歡,雖然通常你使用的API會給它一個名字(例如success
)來表示它的含義。
它的實現爲:
- (void)loginWithCompletionBlock:(void (^)(BOOL))completion
{
BOOL result = NO;
// Do the login thing.
completion(result);
}
調用它會像這樣:
[object loginWithCompletionBlock:^(BOOL success) {
if (success) {
// It worked
} else {
// Oh No!!
}
}];
希望這有助於。