メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2012年6月23日土曜日

[Objective-C][お勉強][メモ]クラス定義

クラスは以下の2つに分けて定義する。

1) インタフェース
2) 実装

通常インタフェースと実装は別々のファイルとし、インタフェースは.h、実装は.mという拡張子をもつ。


インタフェース
インタフェースはディレクティブ@interfaceで始まり、ディレクティブ @endで終わる。
クラスのインタフェースは以下のように定義する。

@interface クラス名 : スーパクラス
{
  インスタンス宣言
}
メソッド宣言
プロパティ宣言
@end









メソッド宣言
クラスメソッド
先頭に"+"(プラス)をつける。
戻り値の型はC言語の型キャストの構文を使って記述する。
戻り値やパラメータの型を省略すると、デフォルトでidが使用される。
パラメータはメッセージと同様に名前の後のコロンの後に記述する。
+ (戻り値の型)メソッド名;
+(戻り値の型)メソッド名:(パラメータの型)パラメータ;
+(戻り値の型)メソッド名:(パラメータの型)パラメータ 名前:(パラメータの型)パラメータ;

インスタンスメソッド
先頭に"-"(マイナス)をつける。
戻り値の型はC言語の型キャストの構文を使って記述する。
戻り値やパラメータの型を省略すると、デフォルトでidが使用される。
パラメータはメッセージと同様に名前の後のコロンの後に記述する。
-(戻り値の型)メソッド名;
-(戻り値の型)メソッド名:(パラメータの型)パラメータ;
-(戻り値の型)メソッド名:(パラメータの型)パラメータ 名前:(パラメータの型)パラメータ;



可変パラメータをもつメソッド
Cと同様にカンマと省略記号を使って宣言する。
- (void)methoddayo:param1, ...;




プロパティ宣言
プロパティ宣言は以下のように記述する。
@property (attribute) Type propertyName;





インスタンス宣言
もともと必要だったが、今や実装ブロックやプロパティからの自動生成が可能なため、
通常はここでインスタンス宣言すべきでない、とのこと。
(波括弧も不要)


.



0 コメント: