2009/10/29

本日のまとめ

前回からの引き続きでもあるが、まずはXcodeで使うフレームワークのディレクトリから。
/System/Libraly/Frameworks/Foundation.framework/Headers
に含まれているようだ。

話はNSLog( )について。
Cでいうprintf( )と同じような物。
OBJCでもprintf( )は使えるが、NSLog( )の方はコンソール内で日付と改行を自動的に入れてくれるという点で優れている。

NS ってなんだ?
ー>何らかのツールを使わなくても、それ自身がCocoaのどんな機能なのか教えてくれる接頭子。Apple社に買収されたNeXT社の名残。自分で設定する場合は会社名や個人名を用いる事が多い。ヘッダファイルに含まれるAPIのようにコレクションされている訳ではない。


*注意点
同じ識別子を使わないようにする。もし使ってしまうと残念賞。


NSLog(@"Hello world!!");
 最初の@は「次の""がCocoaのNSString の要素である」ってことをコンパイラに示すためにある。Stringが文字列を示すように、CocoaではNSStringが文字列を示すからね。

で、NSStringの要素ってのはたーくさんあるんだって。

文字の長さ(字数)をカウントしたり、文字列同士を比較したり、integerとかの値に変換したり。こういった作業はCの文法でいろんなことが出来る。ch8でkwsk。

こういう"NSLog"とかの接頭子は見るだけでCocoaのどんな機能か検討がつくからcoooool。
Cocoaの要素って言うのは大抵こんなモンらしい。

"NSArray"なら「配列なんだなー」ってスグ分かる。

で、return(0)でプログラムの終点を示して実行に移るのはCと共通。
最期にreturnされた値が0なら正常、それ以外ならエラーというのは昔から同じみたい。



これで、ようやくObjective-Cコードの書き方、コンパイル、実行、分析について大まかな概念に関するパートが終わった。


#import <Foundation/Foundation.h>

int main (int argc, const char, *argv[])
{
      NSLog (@"Hello Objective-C!") ;
      return (0);
}

この4行に関してはマスターできた、、、かと。
実行するとただコンソールに「Hello Ocjective-C」って表示するだけ。

今まで完成品の解析ばっかやってたからこんな初歩的な事やるのは違和感あるけど、収穫があるのも事実。しばらくはこんな感じでいこう。

2009/10/26

今までのまとめ


Objective-Cについて基礎から学んでみる事にした。

まだ卒業までは時間がある。
そう信じて、今はひたすら基礎からキッチリ磨いていく事にしました。

ルーズリーフだとなくした時が怖いので、ココにメモします。




.mは実装部。
これが.cだとC、.cppだとC++のコードだぜって意味。
XcodeはGNU Compiler Collection (GCC)っつーコンパイラを使っていて、CもC++もObjcもコンパイルできる。

.hは 宣言部。
structure, symbolic, contants, function, propertyを宣言する。
具体的な内容に関してはまだ不明。

コード内でヘッダファイルを呼び出すとき、Cでは#includeを使うがObjcでは#importを使う。
Objcではどちらも使う事が出来るが、#importを使うと既にそのファイルが呼び出されていないか自動的にチェックしてくれる。


#import <Foundation/Foundation.h>//=Foundationというフレームワークに含まれるFoundation.hというファイルを見るようにコンパイラに指示を与える。

*フレームワーク:ヘッダファイル、ライブラリ、イメージetcがひとまとまりになったもの。

Cocoaは主に2つのフレームワークから構成される。
・Foundation
インタフェースの下の階層にある部分を処理。OS的な役割。
・Appkit
インタフェースに関わるところをサポート。

CoreAnimationやCoreImageといったものもアルヨ!

この2つにはかなーり多くのヘッダファイルを含む。全部を#importするのはメンドイ。
そのため、それぞれマスタヘッダファイルにアクセスする事で全てのヘッダファイルを使えるように出来る。

その上、コンパイラはヘッダファイル内に含まれる全てのテキストを読み込む訳ではない。
Precompiledヘッダを読みこむことでスピーディな処理を実現。
つまり、一回読み取ったものを忘れずにどっかに記憶させとく的な機能らしい。

precompiledってどゆこと。。。ワカラン。


さて。
これだけの内容を抽出するのに5日ほどかかった訳だが。

オレ、どんだけ英語よえーのwwwwwwww
まじぱねぇwwwwwwwww

でも、がむばる。
今の苦労は、きっと将来役に立つ。
大金さん、まじリスペクトしてますんで。