iPhoneのアプリが動くしくみを調べてみた。おおよそ以下のようになるらしい。
画面上のアイコンがタップされる
↓
そのアプリのmain()が実行される
↓
main()の中でUIApplicationMain()が実行される
↓
UIApplicationMain()はapplicationDidFinishLaunchingを実行する
↓
applicationDidFinishLaunchingでそのアプリの初期設定をする
↓
イベントループへ
うーむ、わかりにくい。つまり、通常文字通りメインになるmain関数はiPhone
アプリでは単なる起動時に呼ばれるかざりというわけだ。入学式における校長
みたいなもんだな。で、applicationDidFinishLaunchingで初期化処理をすれば
いいのだね。
イベントループ中はユーザの操作に対して処理をすればいいのだが、時々ユー
ザの操作以外の邪魔が入る。例えば電話がかかってきたとかメールが届いたと
かメモリが少なくなったとか。いちいちそれらが発生したときにはどうするの
かをしていする必要がある。たとえていえば授業中には通常、生徒からの質問
に答えたり、生徒に何かを見せたりするが、時々、暴走族が校庭に入ってきた
とか、火事の非常ベルが鳴るとか邪魔が入る、そういうことだ(そうなの
か?)。
終了時は、appliationWillTerminateが呼び出されるので、このメソッドに終
了処理を記述する。データを保存したり。メモリを解放したり、ラジパン・・・
(以下略)するわけだ。つまり、授業終わりの鐘が鳴ったら、どこまでやった
かメモして、宿題を伝えて、起立礼をやってということだな。
こんな感じでやっているがいつまともなアプリが作れるのか見通しが立たない。
↓
そのアプリのmain()が実行される
↓
main()の中でUIApplicationMain()が実行される
↓
UIApplicationMain()はapplicationDidFinishLaunchingを実行する
↓
applicationDidFinishLaunchingでそのアプリの初期設定をする
↓
イベントループへ
うーむ、わかりにくい。つまり、通常文字通りメインになるmain関数はiPhone
アプリでは単なる起動時に呼ばれるかざりというわけだ。入学式における校長
みたいなもんだな。で、applicationDidFinishLaunchingで初期化処理をすれば
いいのだね。
イベントループ中はユーザの操作に対して処理をすればいいのだが、時々ユー
ザの操作以外の邪魔が入る。例えば電話がかかってきたとかメールが届いたと
かメモリが少なくなったとか。いちいちそれらが発生したときにはどうするの
かをしていする必要がある。たとえていえば授業中には通常、生徒からの質問
に答えたり、生徒に何かを見せたりするが、時々、暴走族が校庭に入ってきた
とか、火事の非常ベルが鳴るとか邪魔が入る、そういうことだ(そうなの
か?)。
終了時は、appliationWillTerminateが呼び出されるので、このメソッドに終
了処理を記述する。データを保存したり。メモリを解放したり、ラジパン・・・
(以下略)するわけだ。つまり、授業終わりの鐘が鳴ったら、どこまでやった
かメモして、宿題を伝えて、起立礼をやってということだな。
こんな感じでやっているがいつまともなアプリが作れるのか見通しが立たない。
Leave a comment