web-dev-qa-db-ja.com

NSDictionaryをplistに保存

私はこの投稿にあるコードを使用しています: Plistからの複数の配列 、同じplistフォーマットで。

これは正常に機能しますが、作成した配列を同じ形式でplistに保存する方法がわかりません。

どうすればこれを達成できますか?

編集:私が必要とするのはそれほど節約ではなく、保存するデータの形成です。
plistは、文字列とそれに対応するキーを含む辞書の配列です。特定のキーを持つすべての文字列は、独自の配列に配置されます。

その配列を辞書の配列の正しい位置に戻し、保存する準備をするにはどうすればよいですか?

13
Ashley Staggs

myPlistFile.plistを作成し、アプリケーションリソースフォルダーに追加することを忘れないでください。

NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

ここでパスをスキャンし、forループを使用してmyPlistFile.plistを検索できます。

NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"myPlistFile.plist"];
if (![[NSFileManager defaultManager] fileExistsAtPath: plistPath])
{
          NSString *bundle = [[NSBundle mainBundle] pathForResource:@"myPlistFile" ofType:@"plist"];
          [[NSFileManager defaultManager] copyItemAtPath:bundle toPath:plistPath error:&error];
}
[myDict writeToFile:plistPath atomically: YES];
16
Jhaliya

最も簡単な方法は次のとおりです。

NSDictionary* dict = ...;
[dict writeToFile:@"..." atomically:YES];

-writeToFile:atomically: のドキュメントを参照してください。

24
John Calsbeek

逆に、ファイルからNSDictionaryをロードするには:

+ (id)dictionaryWithContentsOfFile:(NSString *)path;
0
pkasson