我将plist读入内存,如果用户点击一行,则需要更改其中一个值。
我将plist读入内存,然后在表格视图中显示。
这是读入内存:
self.questions = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"q1" ofType:@"plist"]];
然后我需要更新其中一个值,就像它在内存中一样。我想我可以制作另一个完整的数组,但似乎我应该能够做到这样的事情:
[[[self.questions valueForKey:title] objectAtIndex:indexPath.row] valueForKey:@"Checked"] = @"1";
运行时我得到一个错误,说该值是只读的。制作另一个数组以处理已检查和打开的时间短,有没有办法做到这一点?
谢谢你!答案 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
选项。