このブログを検索

ラベル

C# (6) Objective-C (2) Qt (2) .NET (1) Visual Studio (1)

2011年5月2日月曜日

Objective-Cのメモ#1

私は日常ではC#を使用していますので、C#使用者から見たObjective-Cの目新しい点についてメモしておきます。
ちなみに、参考書は掌田津耶乃著「Objective‐C 2.0徹底解説」です。

オーバーロード
Objective-Cにはオーバーロードの機能はありません。
その代わり、キーワードを変えることによってオーバーロートと同じ事を実現できます。


クラス変数
Objective-Cにはクラス変数がありません。
グローバル変数を代用してクラス変数を実現するのが一般的なようです。

カテゴリ
1つのクラスをいくつかの部品の組み合わせとして構成するための仕組みです。
別ファイルにインスタンス変数を分離できないので、C#のpartialというより拡張メソッドのような存在でしょうか。

・MyObject.h

・MyObject.m

・MyObject+add.h

・MyObject+add.m

・main.m


プロトコル
C#で言うところのインターフェースです。Objective-Cでは、@required以降は必ず実装しなければならない必須メソッド、@optional以降は実装しなくても良いオプショナルメソッドになります。
・ヘッダファイル

・実装ファイル

プロトコルを持っているか確認するには、NSObjectのconformsToProtocol:メソッドを使用します。conformsToProtocol:の戻り値がYESの場合、インスタンスは指定したプロトコルが実装されています。

また、下記の通り仮引数にプロトコルを指定すると、実引数が指定したプロトコルを実装しない場合は警告エラーとなります。

さらに、オプションメソッドの実装有無をチェックするには、NSObjectのrespondsToSelector:メソッドを使用します。

0 件のコメント:

コメントを投稿