2011年5月2日月曜日

Objective-Cを学ぶ

以前Objective-Cについて書きましたが、
改めてObjective-Cの書き方をざっとまとめてみます。
下記がわかれば、だいたいソースコードを読めるのではないかと・・・自身ないけど。

.hファイル
  1. @interface クラス名 : 親クラス名 {  
  2.     int member1;  
  3.     (メンバ変数)  
  4. }  
  5. - (返り値)メソッド1;  
  6. - (返り値)メソッド2:(引数型)引数  
  7. - (返り値)メソッド3_1:(引数型)引数1 メソッド3_2:(引数型)引数2  
  8. @end  
.mファイル

  1. @implements クラス名  
  2. - (返り値)メソッド1  
  3. {  
  4.   メソッド1の処理  
  5. }  
  6.   
  7. - (返り値)メソッド2:(引数型)引数  
  8. {  
  9.   メソッド2の処理  
  10. }  
  11.   
  12. - (返り値)メソッド3_1:(引数型)引数1 メソッド3_2:(引数型)引数2  
  13. {  
  14.   メソッド3の処理  
  15. }  
  16. @end  

メソッドの呼び出しは、
  1. [オブジェクト名 メソッド名:引数];  
です。

他には、
ヘッダーの読み込み(includeではなくimport)
  1. #import <UIKit/UIKit.h>  
他の場所で定義されたクラスの名前
  1. @class クラス名  
があります。

また、アクセッサとして、.hに
  1. @property (nonatomic, retain) UIWindow *window;  
.mに
  1. @synthesize window;  
と書けば、getter/setterメソッドを自動生成してくれます。


  1. @property (nonatomic, retain) UIWindow *window;  
の nonatomic は atomicじゃないので、非同期処理は対応しない、 retainは代入したときに参照カウントを1増やして解放されないようにする、っていう意味っぽいです。