stryhのchangelog

初Objective-C

* 初Objective-C
せっかくMacを所持しているのでObjective-Cに挑戦!

* 参考本

XcodeによるObjective-C入門
XcodeによるObjective-C入門
毎日コミュニケーションズ 2010-01-23
売り上げランキング : 7461

おすすめ平均 star
starまったくObjective-Cを知らない人におすすめの本

Amazonで詳しく見る by G-Tools

* コード
Xcodeというツールを使用してコードを作成。っていうか勝手にできた。
JavaのアプリケーションをWinで開発をしているとeclipseを使うとおもうが、Macでもeclipseは使えるがObjectice-CはXcodeになる。
今さらっと調べてみたがeclipseでObjective-Cは使えないみたい。
で、↓はコードです。

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    NSLog(@"Hello, World!");
    [pool drain];
    return 0;
}

* 解説
** import

#import <Foundation/Foundation.h>

この部分はJavaのimportと似ているかも。
詳細に解説をすると・・・

#import <フレームワーク名/ヘッダーファイル名>

となります。
*** 自作のヘッダーファイルの場合

#import "hoge.h"

となる。
** NSAutoreleasePool

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
・
・
・
[pool drain];

これは・・・正直よくは分かっていない。
色々調べているとメモリー管理に関係するみたい。
これを宣言することで変数名poolにオブジェクトのメモリーを確保するっていう意味なのかな・・・?
自信が無い。
最後の行でそのメモリー上に確保したオブジェクトを解放する。
allocってなに?(←これほんとうに???状態)
今の俺の想像だけど・・・
– NSAutoreleasePoolクラス(NSObjectクラスをimportしているのでallocを呼べる)のalloc関数を呼ぶ。
– よんだその結果を更にinit関数(恐らく初期化関数?)をよび変数poolに代入。
かな。
で、最後のは・・・
– 変数名poolはNSAutoreleasePoolクラス型なのでそのクラスのdrain関数を呼びメモリーを解放
かな。
本当「かな」ってしか言えないな〜。
** コメント

// insert code here...

この箇所はコメントになり、コンパイル時には無視される。
他には・・・

/*
複数行コメント
*/

というのもある。

** 出力

NSLog(@"Hello, World!");

コンソールに出力するだけのプログラムなので文字列を出力する箇所です。
引数に文字列みたいなのを渡している。
@”文字”とすることでNSStringオブジェクトとして扱われる。

** 戻り値
このプラグラムの場合戻り値を受け取るようになっている(intの部分が“int型の戻り値を受け取ります”ということになる)。

* 所感
聞いた事はあっても実際に自分でコードを書いたのは初。
まだ「???」状態です。
こればかりは徐々に進めていく中で解決できるようにしていきたい。

URL :
TRACKBACK URL :

Leave a reply

*
*
* (公開されません)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Return Top