2010年4月24日土曜日

Objective-Cのクラス定義

Objective-Cでは、クラスを以下の2つに分けて定義します。
  • インターフェイス(*.h):クラスのインスタンス変数とメソッドを宣言、スーパクラスを指定
  • インプリメント(*.m):実際のクラス定義とメソッドを実行するコー

◆インタフェース(*.h)

#import  "ItsSuperclass.h"
@interface   ClassName  :  ItsSuperclass //(注)ItsSuperclassを省略するとルートクラスとなる。
    {
         インスタンス変数宣言 //... 継承された型がそのまま利用できる。
    }
         ± (型)メソッド宣言  // ....  クラスメソッド の場合:先頭に+
                                          //      インスタンスメソッド の場合:先頭にー
                                           //      型を省略すると、id型
               // 引数が複数の場合: - (void) setWidth:(float) width height: (float)height;
               // 可変引数の場合: - makeGroup: group, ..... ;
   @end

   @class Rectangle, circle;  // 継承関係のないクラスの利用の場合(よくわからん..)


◆インプリメント(*.m)

   @implementation ClassName : ItsSuperclass // ItsSuperclassは省略可
      {                                   //省略可
        インスタンス変数宣言 // 省略可
      }                                  //省略可
        ± (型)メソッド定義: (型)変数
       {
           メソッドの実装
                    //引数が複数の場合、va_list ap; va_satrt(ap, group); 等
                    //インスタンス変数がレシーバでないオブジェクトに属する場合:
                        //よくわかりません。(Objective-C Programming P.42)
                    // selfの用法:よくわかりません。
       }
    @end

はい、はい、まだまだ道はながそうです。

  • オブジェクトの割当と初期化
  • プロトコル
  • 宣言済みプロパティ
  • カテゴリと拡張
  • 関連参照
  • 高速列挙
  • 静的な動作の実現
  • セレクタ
  • リモートメッセージング

0 件のコメント:

コメントを投稿