iPhoneアプリ内でアプリケーションスコープのデータを保持する方法①(UserDefaultsに保持する)
How to remain a variable in application scope? No1
皆さんはiPhoneアプリで、アプリケーションスコープのデータを保持するのに、どのような方法をとっていますか?
アプリケーションスコープのデータとは、アプリ全体で使用する設定や状態、複数の画面間でまたがったデータのことです。このようなデータは、一つの画面から次の画面への項目の受け渡しとは違い、各画面から共通で参照できる必要があります。
私は、今のところ、以下の3つの方法を、利用シーンによって使い分けています。私の多くはないiPhoneアプリ開発経験から落ち着いている方法なので、他に良い方法があれば、ぜひ教えてください!
①UserDefaultsに保持する
UserDefaultsは、iPhoneのアプリで、設定値を保存するのに便利な方法です。
実体はplist形式のファイルへの保存ですから、アプリケーションスコープで値を保持するというよりは、値をファイルへ保持しておき、アプリ内から参照できるといった意味づけが大きいかと思います。
一時的なデータを保持するにはあまり向きませんが、アプリレベルで参照する設定値などは、次回起動時のためにファイルへも保存することが多いため、保持する内容によっては使える方法だと思います。
値の保存
+ (void) storeUserBirthday: (NSString *) userbirthday { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject: userbirthday forKey: @"kCachedKey"]; [defaults synchronize]; }
保存されているデータの取得
+ (NSString *) cachedUserBirthday { return [[NSUserDefaults standardUserDefaults] stringForKey: @"kCachedKey"]; }
タグ:iphone