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 件のコメント:
コメントを投稿