これは非常に大きな質問です。単に例を挙げて言語を学ぶことを期待するべきではありません。先に進む前に、まずAppleのドキュメントにあるObjective-C言語の概要を読む必要があります。質問をすることで、あなたはすべてを同時に理解しようとしているように見えますが、言語自体の基本を知らないようです。これは言語を学ぶための良いアプローチではありません。
とにかくあなたの質問に答えるには:
+記号は、それがクラスメソッドであることを意味します。-記号は、インスタンスメソッドであることを意味します。
- メソッドのセマンティクスは
- (returntype)methodName:(type1)param1 nameContinuation:(type2)param2 ;、-ここではインスタンスメソッドであることを意味し、戻り型はですreturntype。メソッドには名前がmethodName:nameContinuation:あり、2つのパラメーターがあります。1つは変数でtype1識別されるタイプで、もう1param1つは変数で識別されるタイプtype2です。param2
+ (void)allOpenRequestsWithBlock:(void (^)(NSArray *requests, NSError *error))block
シンタックスでは、はvoid(^)(NSArray* requests, NSError* error)、最初のパラメータのタイプです。このタイプは、Objective-Cブロックを記述します。これは、関数ポインターに非常に似ていますが、クロージャー(および変数のキャプチャー)を可能にします。ブロックの詳細については、Appleの専用ドキュメントをもう一度お読みください。
2番目の質問では、メソッド呼び出しが完了しておらず、ブロック本体が欠落しています。
[[AFChangeRequestAPIClient sharedClient] getPath:@"example.json"
parameters:[NSDictionary dictionaryWithObject:@"false" forKey:@"include_entities"]
success:^(AFHTTPRequestOperation *operation, id JSON)
{
/* block body here */
}];
getPath:parameters:success:これにより、によって返されるオブジェクトのメソッドが呼び出されます[AFChangeRequestAPIClient sharedClient](したがって、これは上記とまったく同じメソッドではありません)。このメソッドには3つのパラメーターが渡されます。最初のパラメーターは、1つ@"example.json"だけNSDictionaryのキーと値のペアを含み、最後のパラメーターはObjetive-Cブロックです。このブロックは、それぞれタイプAFHTTPRequestOperationとの2つのパラメーターを取りますid。
繰り返しになりますが、基本(インスタンスとクラスのメソッド、メソッドの基本的な言語構文など)を理解する前に、学習が速すぎて高度なもの(ブロックとその構文など)を使用しようとしているようです。時間をかけて物事を学びましょう。1日で家を建てることはありません。さらに重要なのは、屋根の前に土台を建てることです;)