いつまでも現役プログラマ

gooブログとYahooブログ。何か文化のような物が違うようで新鮮です。

全体表示

[ リスト ]

起動時/終了時の処理

 プログラムの起動/終了時に、現在の状態を保存/復元をするのはiPhoneアプリでは特に重要でした。。なぜなら。。。電話がかかってくると、アプリが止まるのです。また、バッテリィー切れでも止まるので、対策が必要です。
 やり方は。。。メインプログラムのデリゲートに、以下の2つの関数を追加するだけです。

<xxxAppDelegate.m>

- (void)applicationDidFinishLaunching:(UIApplication *)application {
.....
起動時の状態復帰処理を記述
}
- (void)applicationWillTerminate:(UIApplication *)application {
.....
終了時の状態保存処理を記述
}

実際の保存/復元は、WindowsではiniファイルI/Oや、悪名高いレジストリーI/Oを行いますが、iPhone(Objective-C)の場合は、便利なNSUserDefaultsを使用するのが作法のようです。

<読み込み例>
NSUserDefaults * udefault = [NSUserDefaults standardUserDefaults];
if ([udefault stringForKey:@"UserDefaults"]==nil)
return ;
int runType = [udefault integerForKey:@"RUN_TYPE"] ;
int runUnit = [udefault integerForKey:@"RUN_UNIT"] ;
NSString *mailAddress = [udefault stringForKey:@"mailAddress"] ;
<書き込み例>
NSUserDefaults * udefault = [NSUserDefaults standardUserDefaults];
[udefault setInteger:runType forKey:@"RUN_TYPE"] ;
[udefault setInteger:.runUnit forKey:@"RUN_UNIT"] ;
if (mailAddress)
[udefault setObject:mailAddress forKey:@"mailAddress"] ;

辞書形式でデータをI/OするのがNSUserDefaultsのようで、簡単に使えますね。

 RunLoggerの場合、測定中の予期せぬ終了(着信やバッテリィー切れ)や、HOMEボタンを押した時のアプリ終了として、現在の測定結果や設定条件を保存しています。そのため、再起動すると以前の状態に復帰して、自動的に測定再開出来る訳です。


アフィリエイト   私のおすすめ:
ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド 実例から学ぶiPhone SDKプログラミング [本]

閉じる コメント(0)

コメント投稿
名前パスワードブログ
投稿

閉じる トラックバック(0)

トラックバックされた記事

トラックバックされている記事がありません。

トラックバック先の記事



.

amru1957
人気度

ヘルプ

Yahoo Image

  今日 全体
訪問者 0 5471
ブログリンク 0 0
コメント 0 71
トラックバック 0 0

ケータイで見る

モバイル版Yahoo!ブログにアクセス!

モバイル版Yahoo!ブログにアクセス!

URLをケータイに送信
(Yahoo! JAPAN IDでのログインが必要です)

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

標準グループ

関連グループ

登録されていません

開設日: 2009/12/21(月)


プライバシーポリシー -  利用規約 -  ガイドライン -  順守事項 -  ヘルプ・お問い合わせ

Copyright (C) 2012 Yahoo Japan Corporation. All Rights Reserved.