Objective-Cの/編集の.plistファイルに追加します。
-
19-09-2019 - |
質問
WRITETOFILEはない:アトミック、既存の.plistにデータを追加しますか?それはの.plistで値を変更することは可能ですか?アプリが変更を有効にするには再コンパイルする必要がありますか?
私は私のアプリでカスタムの.plistリストを持っています。構造は以下の通りです。
<array>
<dict>
<key>Title</key>
<string>MyTitle</string>
<key>Measurement</key>
<dict>
<key>prop1</key>
<real>28.86392</real>
<key>prop2</key>
<real>75.12451</real>
</dict>
<key>Distance</key>
<dict>
<key>prop3</key>
<real>37.49229</real>
<key>prop4</key>
<real>58.64502</real>
</dict>
</dict>
</array>
配列タグは、同じ構造を持つ複数のアイテムを保持しています。私は、既存の.plistに項目を追加する必要があります。それは可能ですか?私はそうならば、ちょうどそれをするのUIViewを書くことができます。
* EDIT - OK、私はそれに追加していない場合、それは少なくとも上書き望んWRITETOFILEしてみました。読み書きしながら、不思議なこと、次のコードは、別のパスを選択します。
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
の.plistファイルには、私のプロジェクトです。私はそれから読み取ることができます。私はそれに書き込むと、それはの.plistファイルを作成し、私の/users/.../library/でそれを保存しています!これは誰にも理にかなっていますか?
解決
私は、アプリケーションが付属していますplist
がread only
を想定していることを前提としています - それはアプリケーションバンドル内にある
任意の更新は、ユーザーの特定のディレクトリに格納されています。
他のヒント
もちろん、あなた自身の.plistファイルを作成して書き込むことができます。 NSArray *arrayPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *userFile=[[arrayPath objectAtIndex:0] stringByAppendingString:@"/whatever.plist"];
することで、あなたはそれを編集/書くことができます。
しかし、私はまた同じ質問があります?どのように私は特定のキーに対する値を編集し、代わりに、全体の.plistファイルを上書きするかを
例えば。私はキーの値「MyTitle」を変更したい場合は、「タイトル」で:「ひまわり」に<key>Title</key>
<string>MyTitle</string>
、どのように私は、コードから