是否将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如果是这样做到这一点。

*编辑 - OK,我只是试图将writeToFile希望它会ATLEAST覆盖如果不添加到它。奇怪的是,下面的代码,同时读取和写入选择不同的路径。

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文件

E.g。如果我想改变值“MyTitle”为重点的“标题”:<key>Title</key> <string>MyTitle</string>为“向日葵”,我怎么能做到这一点从代码

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top