ECWorks Blog

ECWorks Blog

CakePHPを中心としたサイト開発情報をメインに公開。新しもの好きなので時々製品レポートなんかも。

【iPhone】Cocoaプログラミングの入り口に立つ!

ようやくCocoaプログラミングの入り口に立つことが出来ました。

以前の記事で「Interface Builderが使いにくい」「参考書がない」と言っておりましたが、試行錯誤して、私が使っている参考書のサンプルプログラムと同じ動作をするものをiPhone用アプリとして作ることに成功しました。

手順としてはこんな感じですかね。

1:[Xcode(以下X)]プロジェクトを作る

2:[X]NSObjectのサブクラスFooを「新規ファイル」で作成する

3:[InterfaceBuilder(以下I)]NSObject(のインスタンス)を作成し、クラスをFooとする

4:[I]Fooの中に、必要なアウトレットとアクションを作成する

例えば、テキストフィールドとボタンを設置するのであれば、text1アウトレットとdoActionアクションを追加。

5:[I]window内にパーツを配置

例えばボタンとテキストフィールドを配置する。

6:[I]controlキーを押しながらFooをクリックすると黒いウィンドウが開く。その中のアウトレットとアクションに対して、一番右端の+マークをwindow内のパーツにドラッグし、「接続」をする

この操作がどの情報にも詳しく書かれていないため、初心者にとっての第一関門かもしれない。
例えば、text1の右端の+をドラッグして配置したテキストフィールドへ、doActionをドラッグしてボタンへ(更にメニューが出るが、これはボタンの状態を表す。適切な動作を選ぶ)。

7:[I]Fooを選択した状態でFileメニュー内の「Write Class File」でFooクラスを書き直す

8:[X]アクションの中身を書く

9:[X]ビルドして動作確認・完成

iPhoneに限らず、Xcode3.1でMacアプリを作るのにはこの方法になると思います。サンプルプログラムはネット上などにもありますが、手順についての記述はなかなか無いので、参考になれば幸いです。
なお、UILabelやUITextFieldの値に相当する部分はプロパティ名が変わっているらしく、古い参考書を参考にする場合は注意が必要です。「setStringValue:」とか書かれているのは「setText:」とします。ちなみにプロパティに直接アクセスするのではなく、アクセサを呼び出すのが基本ですので、setTextはアクセサで、実際のプロパティ名は「text」です。リファレンスを読む際に注意が必要ですね。

とりあえず、Interface Builderに配置したボタンなどを操作することは出来るようになったのですが、次の目標としては、ビューを扱えるようにならないとです。ページ切り替えなどをしなければなりませんので。それから、テーブルの使い方とか、複雑なアイテムの操作と、あとファイルの扱い方。それができればようやく目標のアプリまでいけそうです。夏休み中にこれらの基礎技術がマスターできるといいな……

ちなみに私が用いている参考書は次のものです。
日本語で書かれていて、すぐに手に入る本はこれしかなかったので。
旧ツールとの操作方法の違いをのぞいては、比較的読みやすい本だと思います。
この本がなかったら、まだあれこれ悩んでいたと思いますので、とりあえず役に立っているかな?
もし行き詰まっているようでしたら、こちらも是非ご利用いただければ。




Comments are closed.