アプリケーションの設定をファイルに保存するには、NSUserDefaultsクラスを使用します。
// NSUserDefaultsのインスタンス取得
NSUserDefaults* defaults = [ NSUserDefaults standardUserDefaults ];
// 設定された文字列を登録
[ defaults setObject: @"設定値" forKey: @"SET1" ];
// 設定された数値を登録
[ defaults setInteger: 100 forKey: @"SET2" ];
standardUserDefaultsメソッドでNSUserDefaultsクラスのインスタンスを生成し、setObjectやsetIntegerメソッドでそれぞれの設定値を登録します。1番目の引数が保存する値で、2番目の引数が後で読み出す時にキーとなる値です。
保存ファイルは、アプリケーションをインストールしたフォルダのLibrary/Preferencesフォルダに「com.yourcompany.アプリケーション名.plist」というファイル名で保存されます。中身はXMLファイルです。
設定ファイルを読み出す時は、アプリケーション起動後のawakeFromNibメソッド等で以下のようにします。
// デフォルト値を作成
NSDictionary* defDic = [ NSDictionary dictionaryWithObjectsAndKeys:
@"設定値デフォルト", @"SET1"
, [ NSNumber numberWithInt: 100 ], @"SET2"
, nil ];
// NSUserDefaultsのインスタンス取得と読み込み
NSUserDefaults* defaults = [ NSUserDefaults standardUserDefaults ];
// デフォルト値をNSUserDefaultsに設定
[ defaults registerDefaults:defDic ];
// 読み込んだ設定値のテキストを取得
NSString* strSet1 = [ defaults stringForKey: @"SET1" ];
// 読み込んだ設定値の数値を取得
NSInteger nSet2 = [ defaults integerForKey: @"SET2" ];
NSDictionaryというのは、アプリケーションの初回起動時には設定ファイルが存在しないので、その場合のデフォルト値を設定する為に使用しています。上記の例では、SET1というキーに設定値デフォルト、SET2には数値の100をデフォルト値として指定しています。
その後、NSUserDefaultsクラスのregisterDefaultsメソッドでNSDictionaryを設定しています。
後は、SET1のキーに該当する値は文字列なので、文字列を読み出すstringForKeyメソッド、SET2のキーに該当する値は数値なので、数値を読み出すintegerForKeyメソッドを呼出します。これで、デフォルト値か、前回保存した設定値を読み出すことができます。
0 件のコメント:
コメントを投稿