私は次の機能を持っています
- (void)loginWithCompletionBlock:(void (^)(BOOL))completion
どうやって呼ぶの?BOOLをブロックとして渡すにはどうすればよいですか?私はいくつかの方法を試しましたが、これがどのように機能するのか理解していないようです。
私は次の機能を持っています
- (void)loginWithCompletionBlock:(void (^)(BOOL))completion
どうやって呼ぶの?BOOLをブロックとして渡すにはどうすればよいですか?私はいくつかの方法を試しましたが、これがどのように機能するのか理解していないようです。
「aBOOL
をブロックとして」渡すのではなく、後で渡されるブロックを渡しますBOOL
。
[thingy loginWithCompletionBlock:^(BOOL didSomethingInteresting){
// Your code here, using didSomethingInteresting, such as:
if( didSomethingInteresting ){
// Do something even more interesting
}
else {
// Do something boring
}
}];
loginWithCompletionBlock:
おそらくオフになり、何らかのサービスにログインしようとします。試行が成功または失敗のいずれかで終了すると、実行可能コードの一部であるブロックが実行され、BOOL
によって値が渡されます。loginWithCompletionBlock:
ちなみに、の名前は好きな名前にすることができますが、通常、使用しているAPIには、その意味を示すBOOL
名前(など)が付けられます。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!!
}
}];
お役に立てれば。