Wednesday, January 19, 2011

データの保存 (1) - 設定を保存するシンプルな方法

iPhoneアプリ開発において、データを保存したい場合はどうすればいいのだろう?

今回は様々なデータ保存の手法を取り上げてみます。

バックナンバー
  1. 設定を保存するシンプルな方法
  2. ホームディレクトリとファイルパス
  3. ファイルやディレクトリの操作
  4. いろいろなデータのファイル保存
  5. プロパティリストの利用
  6. ローレベルなファイルアクセス

設定を保存するシンプルな方法

この記事の内容
  • NSUserDefaults
  • データの形式と保存先
NSUserDefaults

環境設定やちょっとしたデータの記憶であれば、NSUserDefaultsが便利です。

ファイルの保存場所などは一切気にする必要がありません。データのセット・取得もNSDictionaryと同じように行えるので、とても簡単です。

保存
// 文字列オブジェクト
NSString *myString = [NSString stringWithString:@"Lorem Ipsum Dolor"];
// 空のデータオブジェクト
NSData *myData = [NSData data];

// 共有Defaultsオブジェクトを取得
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

// 値をセット
[userDefaults setObject:myString forKey:@"item1"];
[userDefaults setObject:myData forKey:@"item2"];

// 保存
[userDefaults synchronize];
読み出し
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

// データを取得
NSString* myString = [userDefaults stringForKey:@"item1"];
NSData* myData = [userDefaults dataForKey:@"item2"];

上記のサンプルはNSStringとNSDataで試していますが、他にもブール値や様々な数値、NSArrayやNSDictionary(ともに入れ子も可能)、さらには独自クラス(詳細)など様々なオブジェクトを保存できます。このあたりの詳細は下記参考サイトをご覧ください。

データの形式と保存先

NSUserDefaultsのデータは、プロパティリスト形式で以下の場所に保存されます。

[シミュレーター]
~/Library/Application Support/iPhone Simulator/<iOS Version>/Applications/<GUID>/Library/Preferences/<Identifier>.plist
[実機]
/Applications/<GUID>/Library/Preferences/<Identifier>.plist
参考サイト

次回

次の記事では「ホームディレクトリとファイルパス」について取り上げます。

No comments:

Post a Comment