2012-05-23 54 views
0

我将一个NSMutableDictionary存储在plist文件中。 当我将它读入我的对象的属性中时,我需要能够对其进行编辑。 我的属性指针只是NSMutableDictionary, 但是从plist生成的对象是NSDictionary。从plist中读取字典后无法编辑字典

现在我想能够添加更多的键值对或删除少数并再次保存。 我不能,因为它是一个不可变的对象。

该对象在我的模型的init中创建。

我应该怎么办?

回答

1

这应该做你需要的东西:

NSDictionary * dict = [NSDictionary dictionaryWithContentsOfFile: <myfilename>]; 
NSMutableDictionary * mutableDict = [[dict mutableCopy] autorelease]; 
+0

任何'NSDictionary'方法都可以在'NSMutableDictionary'上调用,包括便利的构造函数。然后,便利构造函数返回一个'NSMutableDictionary'实例(或类集群中的具体子类)。所以,你可以做'NSMutableDictionary * mutableDict = [NSMutableDictionary dictionaryWithContentsOfFile:];' –

+0

D'oh ...是的,我的坏! –

0

这是所有你需要做的

NSMutableDictionary *mutableDictionary = [dictionary mutableCopy]; 
0

你只需要做出解释的可变副本:

NSDictionary *dictionary; 

NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];