先日まとめたとおり,Objective-Cは「C言語+オブジェクティブ指向」の形でつくられています。
しかし実際に中身をみると,C言語でオブジェクティブ指向を実現するために,ライブラリを大量に追加したものといった感じだそうです。
したがって,C言語のコードは普通に通りますし,Objective-C特有のコードとC言語のコードを混在させることもできます。
実際,XcodeでiPhone用プロジェクトを新規作成すると「main.m」というソースファイルが作成され,その中を見ると下記のような見慣れた関数が書かれています。
int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
C言語で最初に覚えるmain関数ですね。
Objective-Cでも,プログラムが開始されて最初に呼ばれるのはmain関数です。
このC言語的な関数の中に,Objective-C特有のメモリの自動管理(@autoreleasepool)だったり,メソッド呼び出し([AppDelegate class])だったりが混在していて面白いですね。
Objective-Cについては,また暇だったら書きます。
0 件のコメント:
コメントを投稿