Xcode4.2をインストールした後、いきなりCHPATER4-3へ進んでiPhoneシミュレーターを使って動く様子をとにかく体験してきましたが、そろそろレクチャーの丸写しではなく応用力を付けたくなってきました。
そこで、今回は「よくわかるiPhoneアプリ開発の教科書」のCHAPTER3へ戻ってObjective-Cの基本を学ぶことにしました。
他の言語をやったことのある方は、この章は軽く読み流すだけで大丈夫そうです。
■CHAPTER3-1
Objective-Cについて概要をサラリと書かれています。さすが森先生、初心者を安心させて話を進めてくれます。
最後に変数と型について、触りだけ書かれています。
■CHAPTER3-2
ポインターの説明が出てきます。今まで見たC言語の教科書の中で、一番分かりやすかったです。
Objective-Cでは、ポインター変数を作るときに、変数名に「*」を付けることが分かりました。
NSString *str =[NSString stringWithString:@"文字"];
myLabel.text=str;
この辺の基礎的な解説や使い方も、書籍で丁寧に教えてくれています。
そして、今まで私はActionScriptを使ってきたので、メモリはガーベージコレクションという機能で自動的に解放されることに慣れてきましたが、Objective-Cではメモリの解放を明示する方がプログラム的に良さそうなことも分かりました。さすが、C言語ですね。
ちなみに、NS~のNSはNextStepの略だという小ネタも載ってました。w
ここでは、以下のような例文を使って、NSLog(ActionScriptで言うところのtrace)で変数や配列の動きを確かめます。
NSString *myname =[NSString stringWithFormat:@"iPhone"];
NSString *myStr =[NSString stringWithFormat:@"私は、%@です。", myname];
NSLog(@"%@",myStr);
Xcodeでは、ViewController.mファイルの以下の場所に入れると、この章でのテストコードを確かめることができました。
Objective-Cでは、連想配列のことを辞書(Dictionary)と呼ぶみたいですね。
NSDictionary *myDict =[NSDictionary dictionaryWithObjectsAndKeys:
@"January", @"1st",
@"February", @"2nd",
@"March", @"3rd",
nil];
NSLog(@"%@", myDict);
■CHAPTER3-3
制御文が出てきます。このあたりは、どの言語も同じ書き方なようで安心しました。
ポインター変数の中身を比較する場合は、is Equalを使って条件式にするとか、少々面倒そうでした。
switch、while、for文は、ActionScriptと同じ使い方でした。コメント文も「//」「/* */」で大丈夫でした。
■CHAPTER3-4
ここで少しオブジェクト指向っぽい話題が出てきました。オブジェクトとクラスです。
新しいことを覚えるのが苦手な私は、ActionScriptでもこの手の話題を避けてきましたが、ついに覚えなければならない日がやってきたようです。
とりあえず、ここではオブジェクトが機械、クラスは設計図、メソッドは命令(依頼?)ということで覚えました。
ちょっと面白いと思ったのは、Objective-Cではメソッドを実行するのに「[](ブラケット)」を使うことです。ActionScriptでは、配列やインスタンスにダイレクトにアクセスする際にしか使わなかったので、ちょっと新鮮でした。そう言えば、CHAPTER6のアニメーションをするところで多用してたのを思い出しました。
また、引数は「:」で渡すというのも慣れるのに時間がかかりそうです。
Objective-Cだと、[myObject disp:@"Objective-C"];
ActionScriptだと、myObject.disp("Objective-C");
とりあえず、本当に基本だけですが、Objective-Cの書き方について少し分かったような気がしました。でも、ECMA-262なActionScriptやJavaScriptに慣れてきただけに、Objective-Cに慣れるのには時間がかかりそうです。
次回は、読み飛ばしてしまったCHAPTER4-1~4-2を見て、プロジェクト作成の大まかな流れを把握したいと思います。
★★★自作iPhoneアプリをAppStoreでリリースするまでの道のり★★★