如何更新从plist创建的数组 - 错误ReadOnly

时间:2012-01-22 01:51:41

标签: iphone arrays ios5 multidimensional-array

我将plist读入内存,如果用户点击一行,则需要更改其中一个值。

我将plist读入内存,然后在表格视图中显示。

这是读入内存:

 self.questions = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"q1" ofType:@"plist"]];

然后我需要更新其中一个值,就像它在内存中一样。我想我可以制作另一个完整的数组,但似乎我应该能够做到这样的事情:

[[[self.questions valueForKey:title]  objectAtIndex:indexPath.row] valueForKey:@"Checked"] = @"1";

运行时我得到一个错误,说该值是只读的。制作另一个数组以处理已检查和打开的时间短,有没有办法做到这一点?

谢谢你!

2 个答案:

答案 0 :(得分:1)

只需使用NSMutableDictionary类进行self.questions:

in * .h

NSMutableDictionary *questions;

in * .m

self.questions = [NSMutableDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"q1" ofType:@"plist"]];

答案 1 :(得分:0)

使用+[NSPropertyListSerialization propertyListWithData:options:format:error:]解码文件内容,并传递NSPropertyListMutableContainers选项或NSPropertyListMutableContainersAndLeaves选项。