Ios Plist writeToFile覆盖整个Plist

Ios Plist writeToFile覆盖整个Plist,ios,Ios,我已经成功地使用Plist在我的iPhone应用程序中读写数据。Plist由数组中的字典组成。当我想附加字典时,我使用writeToFile方法。这很有效,但它覆盖了整个Plist。有没有一种方法可以添加到字典中,而不必阅读整个Plist,然后将整个Plist重新右转回来???皮特,如果我正确理解了你的问题,你应该做以下操作: 将plist文件加载到NSMutableArray中。然后,当您想添加另一个字典时,您只需将此字典添加到现有的NSMutableArray中,然后保存它,而不是直接保存它

我已经成功地使用Plist在我的iPhone应用程序中读写数据。Plist由数组中的字典组成。当我想附加字典时,我使用writeToFile方法。这很有效,但它覆盖了整个Plist。有没有一种方法可以添加到字典中,而不必阅读整个Plist,然后将整个Plist重新右转回来???

皮特,如果我正确理解了你的问题,你应该做以下操作:

将plist文件加载到
NSMutableArray
中。然后,当您想添加另一个字典时,您只需将此字典添加到现有的
NSMutableArray
中,然后保存它,而不是直接保存它(它当然会覆盖…)

NSMutableArray *arrayLoaded = <load here your plist>
NSDictionary *dictionaryToAdd = <create your dictionary>

[arrayLoaded addObject:dictionaryToAdd];
[arrayLoaded writeToFile:filePath];
NSMutableArray*arrayLoaded=
NSDictionary*Dictionary添加=
[arrayLoaded addObject:dictionaryToAdd];
[arrayLoaded writeToFile:filePath];

但是当您保存用writeToFile标记的数组时,它会重写整个Plist吗?我的Plist包含相当多的NSData对象,如果我只想更改Plist中的一个小字符串或字典中的某些内容,我的应用程序会变慢。不幸的是,我离开了我的mac电脑,但我稍后会尝试你的答案。是的,它会重写plist文件。我认为它将保留NSData对象。否则,您可以尝试将这些数据分开存储在两个不同的文件中。谢谢