[UIKit] Tips ユーザーデフォルトを使う
Lyricsの設定パネルを作っていたんですが、そこでUserDefaultsを使用したのでその使い方。
まず、設定ファイルがないときのために、初期設定のUserDefaultsを作ります。
UIApplicationのサブクラスをオーバーライド。
続いて設定を読み出すとき。
standardUserDefaultsを使用するとそのアプリ標準のUserDefaultsのインスタンスが作成されるのでどこから使用してもかまいません。
こんな感じで値を書き込みます。
ここでは、キーLYPrefFontSizeに対してInt型の値を書き込んでいます。
(ただし、まだファイルには反映されません。)
読み出すときはこう。
キーLYPrefFontSizeに対してInt型の値を読み出しています。
defaultsは上と同じもの。
ここではInt型のみを例にとっていますが、他にもBool型などいろいろ対応しています。
扱い方はAppleのNSUserDefaultsドキュメントを見てください。
Cocoaを使っている人は分かると思いますが、設定ファイル自体は"~/Library/Preferences/xxx.plist"に書き込まれます。
xxxは自分のIdentifierです。(Info.plistで設定したもの)
jp.novi.Lyricsなど。
それから、その設定ファイルは値を書き込んでからすぐにはファイルへ反映されません。
普通はシステムが適当にやってくれますが、自分で強制的にファイルを更新したいときは、
を行います。
サンプルは iPhoneDevDocs なんかにあるので見てみるといいかと思います。
まず、設定ファイルがないときのために、初期設定のUserDefaultsを作ります。
UIApplicationのサブクラスをオーバーライド。
+(void)initialize{
NSMutableDictionary *defaultValues = [NSMutableDictionary dictionary];
//初期設定
[defaultValues setValue:[NSNumber numberWithBool:YES] forKey:LYPrefEmbed];
[defaultValues setValue:[NSNumber numberWithInt:24] forKey:LYPrefFontSize];
//
[[NSUserDefaults standardUserDefaults] registerDefaults: defaultValues];
NSLog(@"Register UserDefaults Default");
}
続いて設定を読み出すとき。
standardUserDefaultsを使用するとそのアプリ標準のUserDefaultsのインスタンスが作成されるのでどこから使用してもかまいません。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:[[_fontSetCell value] intValue] forKey:LYPrefFontSize];
こんな感じで値を書き込みます。
ここでは、キーLYPrefFontSizeに対してInt型の値を書き込んでいます。
(ただし、まだファイルには反映されません。)
読み出すときはこう。
[defaults integerForKey:LYPrefFontSize]
キーLYPrefFontSizeに対してInt型の値を読み出しています。
defaultsは上と同じもの。
ここではInt型のみを例にとっていますが、他にもBool型などいろいろ対応しています。
扱い方はAppleのNSUserDefaultsドキュメントを見てください。
Cocoaを使っている人は分かると思いますが、設定ファイル自体は"~/Library/Preferences/xxx.plist"に書き込まれます。
xxxは自分のIdentifierです。(Info.plistで設定したもの)
jp.novi.Lyricsなど。
それから、その設定ファイルは値を書き込んでからすぐにはファイルへ反映されません。
普通はシステムが適当にやってくれますが、自分で強制的にファイルを更新したいときは、
[defaults synchronize];
を行います。
サンプルは iPhoneDevDocs なんかにあるので見てみるといいかと思います。
コメント
コメントの投稿
トラックバック
http://novi.dtiblog.com/tb.php/185-c58b296f

