カスタム検索

2008年12月23日火曜日

iPhoneで動かすHelloWorld その1

とりあえずHelloWorld的なものを作ってみよう!
とはいってもDeveloperCenterのiPhoneアプリケーションチュートリアルを実行しながらメモるだけですが :)

まずは最低限必要なCocoaのデザインパターンの説明をざっくりと

・Delegation
オブジェクトが、デリゲートとして指定された別のオブジェジェクトに定期的にメッセージを送信し、入力の要求やイベントの発生を通知するデザインパターン。
このデザインパターンはクラス継承の代替手段として、再利用可能なオブジェクトの機能を拡張するために使用する。

使用される場所:メイン処理の終了感知、ビューのセットアップ&管理、テキストフィールドのReturnイベント処理等

・Model-View-Controller
いわゆるMVC。
Model=データ、オブジェクト
View=ユーザインターフェース部分
Controller=ModelとViewを仲介する部分

・Target-Action
コントロールオブジェクトから、別のオブジェクトにメッセージの送信と、送信されたメッセージを受け取って処理する仕組み。

使用される場所:ボタン押す>Controllerへ指示


次に、Xcodeを起動して新規プロジェクトの作成を選択。
Windows-Based Applicationを選択。
とりあえず「ビルドして進行」するとiPhoneシミュレーターが立ち上がって白い画面が出たらOK

まずはどのようにアプリケーションが起動して画面が出て行くのかを追ってみよう!
main.m をみるとUIApplicationMainを起動しているだけなのがわかりました。
UIApplicationMainは info.plist 内の MainNibFile 値のインターフェースを起動します。
デフォではMainWindowになっているので、MainWIndow.xibが読み込まれます。
(前回はここの関連が?だった)

MainWindowをダブルクリックするとインターフェースビルダーが起動します。
そこに含まれる4つの項目は以下のような意味をもっています。
・File'sOwner
 UIApplicationのインスタンスです。
・First Responder
 イベント処理、今はまだ使用しません。
・[アプリケーション名]AppDelegate
 アプリケーションのデリゲートインスタンス
・WIndow
 実際の画面に表示されるウインド

アプリケーションは起動が完了すると applicationDidFinishLaunching をデリゲートに送信します。
デフォルトで作成されるこのメソッド処理を見てみます。

- (void)applicationDidFinishLaunching:(UIApplication *)application {

// Override point for customization after application launch
[window makeKeyAndVisible];
}

windowを定義してるだけですね。

次回はここへ、デフォルト以外のViewを追加してみます。

0 件のコメント: