2010年5月3日月曜日

ヘッダとソース

iPhone開発において(Objective-Cと言った方が良いのかな?)、ヘッダファイルは拡張子「*.h」。
ソースファイルは拡張子「*.m」となります。

ヘッダファイルの記述形式はC言語とはかなり異なり、以下の様に各クラスを@interface〜@endで囲むような書き方をします。
@interface test_Class : NSObject<UIApplicationDelegate>
{
   
UIWindow* window;

}
@end

test_Classがクラス名。
NSObjectはスーパークラス。
<UIApplicationDelegate>は「プロトコル」と言って、メソッドのプロトタイプ宣言の集合体のことです。
Objective-Cは多重継承が禁止されているので、実装が必要なメソッドは「プロトコル」でメソッド宣言の集合をまとめて指定します。(プロトコルは複数指定可。)
C#で言うところの「抽象クラス&抽象メソッド」だったかな?確かC#では実装必須で、実装していない場合はエラーになったと思うが、Objective-Cでは実装してなくてもワーニングが出るだけのようだ。まぁ、実装しといた方が良いと思うけど。

ヘッダのインクルードは#includeではなく、「@import」を使います。
#importはC、C++言語の「#include」と違って、多重インクルードを自動的に防いでくれます。

ソースファイルの記述形式は、各クラスを@implementation〜@endまで囲んで記述する形式になります。

@implementation test_Class
 メソッド
@end
クラスが継承してたとしても、クラス名に続いて「:継承元クラス」等と書く必要はありません。
継承元はヘッダファイルの方に書いてあるから。
というか、「:〜」はObjective-Cでは別の意味になるので書いてはいけない。
詳しくは別の機会に書いてみようと思います。

0 件のコメント:

コメントを投稿