以下のメソッド宣言構文を説明できる人はいますか? 「(void)」の次の「connection:(NSURLConnection *)connection」の部分がわかりません
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
ありがとう。
以下のメソッド宣言構文を説明できる人はいますか? 「(void)」の次の「connection:(NSURLConnection *)connection」の部分がわかりません
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
ありがとう。
- // method type. - is instance method, + is class method
(void) // return type
connection: // method name
(NSURLConnection *)connection // first argument and its type
didReceiveResponse: // method name continues
(NSURLResponse *)response // second argument and its type
しかし、おそらく本を見つけて、実際に Obj-C を学ぶべきです。構文を理解していない場合、道のりは長いです。
次のように考えてください。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
void は戻り値の型です。
connection
このメソッドは、 typeという名前の最初の引数を取りNSURLConnection*
ます。
response
このメソッドは、 typeという 2 番目の引数を取りますNSURLResponse*
。
メソッド署名を記述する別の方法です。次のように考えると役立ちます。
- (void)connection:didReceiveResponse:
Obj-C (対 C または C++) の非常に特徴的な点は、署名内で引数が混在しているという事実です。これを行う利点は、メソッドの呼び出しで各引数に簡単に名前を付けることができることです。
[connection:currentConnection didReceiveResponse:lastResponse];
元のオブジェクト、この場合は応答を受信した NSURLConnection を渡すための Cocoa のデリゲート コールバックの標準です。
一般的なメソッド構文を理解していない場合は、おそらく目標 c を読んで、ここで他の回答を参照してください。