Objective-C 2.0プログラミング言語: オブジェクトメッセージング

公開日: : 最終更新日:2014/01/28 Objective-C

記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。


[receiver message]

[myRect display];

[myRect setOrigin:30.0 :50.0];

[receiver makeGroup:group, memberOne, memberTwo, memberThree]; // オプション引数

BOOL isFilled;
isFilled = [myRect isFilled]; // 変数とメソッドは、同じ名前を持てる

[myRect setPrimaryColor:[otherRect primaryColor]];

Objective-Cでは、nilへのメッセージ送信が可能。実行時に影響はない。


id anObjectMaybeNil = nil;
if ([anObjectMaybeNil methodThatReturnsADouble] == 0.0)
{
// 実装が続く…
}

id変数にdisplayメッセージを送信するコードを書く場合は、displayメソッドを持つオブジェクトすべてが潜在的なレシーバになります。

Objective-C 2.0プログラミング言語

なんかRubyのDuck Typingみたいだなあ。

あるオブジェクトがどのクラスに所属するオブジェクトかは一切考慮せず,どのように振る舞うか(どのようなメソッドを持つか)だけに関心を払うのが Duck Typingです。Duck Typingを言い出したのは「達人プログラマ」として知られるDave Thomasです。

まつもと直伝 プログラミングのオキテ 第4回(3) – まつもと直伝 プログラミングのオキテ:ITpro

関数とその引数がコンパイル時にコードの中で結合されるのに対して、メッセージと受信側のオブジェクトはプログラムを実行してメッセージが送信されるまで結合されないことです。したがって、メッセージに応答するために呼び出される実際のメソッドは、コードのコンパイル時ではなく、実行時にのみ知ることができます。

Objective-C 2.0プログラミング言語

関連記事

サンフランシスコのピア39にあるチャウダーズでクラムチャウダーを食す!

lolipop アップルの開発者向けイベント「WWDC2014」

ミスドのカルピスドーナツとカルピスポンデリングを食べてみた!

ミスドで期間限定のカルピスコラボ商品「カルピスドーナツ」と「カルピ

十三カレー計画で牛すじカレーネギのせを食す!(大阪・十三)

「iPhoneアプリ開発キャンプ@大阪」のランチで、十三カレー計画

大阪・難波の加寿屋 法善寺でかすうどんを食す。ランチタイムはおにぎり2個まで無料!

大阪・難波の加寿屋 法善寺 (かすうどん KASUYA)で、かす

ライブドアブログで運営していた「あきお商店」を「卵は世界である」に改名しました

少し前からライブドアブログで「あきお商店」というブログをやって

→もっと見る

PAGE TOP ↑