私はブロックを勉強していましたが、使用するのはかなり印象的です。しかし、私は関数のブロックを変数として使うことができることを知りました。その主な用途は、何らかのアクションを実行しなければならない何らかの結果を得た後に非同期の仕事をしたいときです。目的のcOSの完了ハンドラ
私は多くのリソースを見て、彼らが何をしているかを得ました。
-(void) blockAsLastParam:(NSString *)name completion:(sudBlock)blockName{
blockName(name);
}
[self blockAsLastParam:@"sudh" completion:^(NSString *myname) {
NSLog(@"This is block %@",myname);
}];
ので.Mファイルにパラメータとしてブロックを実装する.hファイル
typedef void(^sudBlock)(NSString * myname);
- (void)blockAsLastParam:(NSString*)name completion:(sudBlock)blockName;
にパラメータとしてブロックを定義する:私はちょうどこのように文字列を渡すことによって、同じことをやってみましたここで私は文字列として "sudh"を渡して、もう一度それを取得しています。
まだ私はどのように作品が動作するか分かりません。 物事の仕方を図面で完全に把握できるチュートリアルはありますか?
私は多くの記事を読んだことがありますが、実装する必要がある方法だけを示していますが、なぜこの実装がこのようなことをするのかはわかりません。 呼び出された関数でもパラメータ転送がどのように行われていますか。
達成したいのは何ですか?これを[Apple doc](https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html)からお読みください –
私はその使用方法を調べるだけで何も達成したくありません。もし私がAPIをどのように呼び出し、その結果を関数に渡すかの例を得ることができれば。それは良いだろう –
このリンクはあなたがブロックが何であるかを理解するのを助けることができます。 http://rypress.com/tutorials/objective-c/blocks – Leena