ツヨシのブログ

技術的な事とか日常の事とか徒然なるままに

アプリケーションの設定値を保存するNSUserDefaultsについて

アプリケーション作成の際に使った、NSUserDefaultsクラスについての忘備録です。

NSUserDefaultsクラス

アプリケーションの設定値を保存して、次回起動時になどに使えるクラスがNSUserDefaultsです。値の保存と、読み出しはstandardUserDefaultsクラス・メソッドに対して行います。

保存、読み出しの際にはキーを目印にして行います。辞書のラベルみたいなものですかね。

データの保存。

NSInteger型の値をtestというキーで保存する場合は次のようになります。

NSUserDefaults *myValue = [NSUserDefaults standardUserDefaults];
[defaults setInteger:8 forKey:@“test”];

また、保存する型によりメソッドは異なります。

  • setBool:forKey: BOOL
  • setFloat:forKey: float
  • setInteger:forKey: Integer
  • setObject:forKey: id
  • setDouble:forKey: double
  • setURL:forKey: NSURL

保存したデータの読み出し

保存したデータはintegerForKey: メソッドでキーを指定することにより読み出されます。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger myValue = [defaults integerForKey:@“test”];

保存と同様に読みだす型により、メソッドは異なります。

  • arrayForKey: NSArray
  • boolForKey: BOOL
  • dataForKey: NSData
  • dictionaryForKey: NSDictionary
  • floatForKey: float
  • integerForKey:  NSInteger
  • objectForKey: id
  • stringArrayForKey: NSArray(値がNSstringのみ)
  • stringForKey: NSString
  • doubleForKey: double
  • URLForKey: NSURL

保存のタイミング

インスタンスdefaultsに設定した値は自動で定期的にサンドボックスに保存されますが、synchronizeメソッドを実行すれば、即座に保存されます。

詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS7対応

詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS7対応