• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Objective-C】文法 メソッドの定義について)

Objective-Cメソッド定義の混乱についての質問

このQ&Aのポイント
  • Objective-Cのメソッド定義について、二つの引数のラベル付けに関して混乱しています。
  • setDataメソッドの引数にラベルを使う方法について質問です。
  • ラベルを使った引数の定義や呼び出しについて詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

>メソッド名とは別に二つの引数用のラベルを設ける事ってできないのですか? できないです。 というか「ラベル」という捉え方をするのが良くないような。 C++とかでメソッドって呼ぶのが一般的なので混同されがちですが、Objective-Cでは、オブジェクトにメッセージを送信することで計算を行うとしてます。そのメッセージとはキーワードと引数値から構成されており、例えば[data setData:3 y:4]なら、 キーワード= setData:y: 引数値=3と4 になります。なので、「setData:y:」でひとつものとして考える必要があり、Visual Basicとかみたいにオプショナル引数(あるいは名前つき引数)とは別物ということです。 参考: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocObjectsClasses.html#//apple_ref/doc/uid/TP30001163-CH11-SW5 ここらへんObjective-Cがメッセージ式に対してどういうコードを生成するかを理解すると、納得できるかと。 もちろんがんばればオプショナル引数みたいなの言語仕様として実装できるのでしょうが、処理系が複雑になって苦労するわりに得るものが少ないと(当時は)考えられたのでしょう。

kingfruits
質問者

お礼

osamuyさん ご回答ありがとうございました。 >というか「ラベル」という捉え方をするのが良くないような。 メソッド名って概念もないんですね。 キーワードと引数って概念、なんとなく解ってきました。

関連するQ&A