まず、NSDictionary型のインスタンスを作ります。
こんなかんじです。今回は、
Object = 125
Key = count
がDictionaryの中に入っています。
で、これをwriteToFileで書き込むとき。
①書き込む場所を決める
これは場合によって書き込み(読み込み)するとき使うフォルダが異なります。
Documents アプリを終了させたあとも残しておきたいファイルを置きます
tmp アプリを終了させた後、残す必要のない一時ファイルをおいておきます
で、この記事ではDocumentsにData.plistという名前で保存するということにします。
②コードを書きます
plistファイルはこのように書き込まれる...はず
③逆に読み込む場合
まず、ファイルのPathを同じように用意します。
NSDictionary *dictionary = [NSDictionary dictionaryWithObject:@"125" forKey:@"count"];
こんなかんじです。今回は、
Object = 125
Key = count
がDictionaryの中に入っています。
で、これをwriteToFileで書き込むとき。
①書き込む場所を決める
これは場合によって書き込み(読み込み)するとき使うフォルダが異なります。
Documents アプリを終了させたあとも残しておきたいファイルを置きます
tmp アプリを終了させた後、残す必要のない一時ファイルをおいておきます
で、この記事ではDocumentsにData.plistという名前で保存するということにします。
②コードを書きます
/* stringWithFormatはこういうところで便利。こういう風になります。
NSHomeDirectoryは12345678-9012-ABCD-EFGH-IJK123456789的な
アプリが入ったフォルダを出してくれる */
NSString *path = [NSString stringWithFormat:@"%@/Data.plist", [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]];
//ここで書き込み。atomicallyをNOにするとそのまま上書き、YESにすると一旦別ファイルとして作ってからリネームして差し替え
[dictionary writeToFile:path atomically:YES];
plistファイルはこのように書き込まれる...はず
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>count</key>
<integer>125</integer>
</dict>
</plist>
③逆に読み込む場合
まず、ファイルのPathを同じように用意します。
NSString *path = [NSString stringWithFormat:@"%@/Data.plist", [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]];で、次にファイルを読み込んでNSDictionary型のものに入れます。
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:path];こうすると、普段通りobjectForKeyとか使えるようになります。
コメント