1

私はブロックを勉強していましたが、使用するのはかなり印象的です。しかし、その後、関数内のブロックを変数として使用できることを知りました。その主な用途は、何かの結果を取得した後に何らかのアクションを実行する必要がある非同期作業を実行する場合です。

私は多くのリソースを調べ、彼らが何をしているのかを理解しました。次のように文字列を渡すだけで同じことをしようとしました:

.h ファイルでブロックをパラメーターとして定義する

typedef void(^sudBlock)(NSString * myname);

- (void)blockAsLastParam:(NSString*)name completion:(sudBlock)blockName;

.m ファイルのパラメーターとしてブロックを実装する

-(void) blockAsLastParam:(NSString *)name completion:(sudBlock)blockName{
    blockName(name);
}


[self blockAsLastParam:@"sudh" completion:^(NSString *myname) {
        NSLog(@"This is block %@",myname);
    }];

ここでは、「sudh」を文字列として渡し、再度取得しています。

それでも、 while がどのように機能するかはわかりません。物事がどのように行われるかが図面で完全にキャプチャされているチュートリアルはありますか.

私は多くの記事を読みましたが、それらは実装する必要がある方法を教えてくれるだけで、なぜこの実装がこのようなことをするのかを教えてくれません. また、 と呼ばれる関数でパラメータ転送がどのように行われているのですか。

4

1 に答える 1