我将 NSMutableDictionary 存储在 plist 文件中。当我将它读入对象的属性时,我需要能够对其进行编辑。我的属性指针仅是 NSMutableDictionary,但是从 plist 生成的对象是 NSDictionary。
现在我希望能够添加更多键值对或删除一些键值对并再次保存。我不能,因为它现在是一个不可变的对象。
该对象是在我的模型的 init 中创建的。
我应该怎么做?
我将 NSMutableDictionary 存储在 plist 文件中。当我将它读入对象的属性时,我需要能够对其进行编辑。我的属性指针仅是 NSMutableDictionary,但是从 plist 生成的对象是 NSDictionary。
现在我希望能够添加更多键值对或删除一些键值对并再次保存。我不能,因为它现在是一个不可变的对象。
该对象是在我的模型的 init 中创建的。
我应该怎么做?
这应该做你需要的:
NSDictionary * dict = [NSDictionary dictionaryWithContentsOfFile: <myfilename>];
NSMutableDictionary * mutableDict = [[dict mutableCopy] autorelease];
这就是你需要做的一切
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];
您只需要制作字典的可变副本:
NSDictionary *dictionary;
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];