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

2012年6月23日土曜日

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

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

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

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


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

  1. @interface クラス名 : スーパクラス  
  2. {  
  3.   インスタンス宣言  
  4. }  
  5. メソッド宣言  
  6. プロパティ宣言  
  7. @end  








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

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


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



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




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


.



0 コメント: