2009年8月9日日曜日

iPhoneアプリ開発(その2:Objective-C編)

今日はObjective-Cの学習をメインに行いました。
C言語を拡張してオブジェクト指向対応させた言語ということでC++と似たものかと思っていましたが、全く別物だということが分かりました。
C++が静的型付け言語であるのに対し、Objective-Cは動的型付け言語になっています。
カテゴリ機能により既存クラスにメソッドを追加できる所などは、ruby等のスクリプト言語を想起させます。
その他、注目ポイントを列挙しておきます。
  • プロトコル(形式プロトコル)は Java の Interface 相当のもの
  • セレクタは Java の Reflection における Method クラスのようなもので、@selector指示子もしくはNSSelectorFromStringメソッドで取得できる
  • 任意のインスタンスにおいて class メソッドで Class インスタンスを取得でき、クラスのメタ情報を取得できる
  • NSObject は以下のようなメソッドを持っていて、Class やセレクタと組み合わせて様々な情報を得ることができる
    • respondsToSelector: 引数で渡されたセレクタが実装されているかどうかを調査
    • performSelector: セレクタで渡されたメソッドを呼び出す
    • isKindOfClass: 継承関係の調査
    • isMemberOfClass: 継承関係ではなくそのクラス直属のインスタンスかどうかを調査
    • description クラス名を文字列で返す
今日の学習は以下のサイトを利用しています。非常に分かりやすくまとまっていて役に立ちました。
http://journal.mycom.co.jp/column/objc/index.html

iPhone自体の勉強はまた明日・・・。


0 件のコメント:

コメントを投稿