我將一個NSMutableDictionary存儲在plist文件中。 當我將它讀入我的對象的屬性中時,我需要能夠對其進行編輯。 我的屬性指針只是NSMutableDictionary, 但是從plist生成的對象是NSDictionary。從plist中讀取字典後無法編輯字典
現在我想能夠添加更多的鍵值對或刪除少數並再次保存。 我不能,因爲它是一個不可變的對象。
該對象在我的模型的init中創建。
我應該怎麼辦?
我將一個NSMutableDictionary存儲在plist文件中。 當我將它讀入我的對象的屬性中時,我需要能夠對其進行編輯。 我的屬性指針只是NSMutableDictionary, 但是從plist生成的對象是NSDictionary。從plist中讀取字典後無法編輯字典
現在我想能夠添加更多的鍵值對或刪除少數並再次保存。 我不能,因爲它是一個不可變的對象。
該對象在我的模型的init中創建。
我應該怎麼辦?
這應該做你需要的東西:
NSDictionary * dict = [NSDictionary dictionaryWithContentsOfFile: <myfilename>];
NSMutableDictionary * mutableDict = [[dict mutableCopy] autorelease];
這是所有你需要做的
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];
你只需要做出解釋的可變副本:
NSDictionary *dictionary;
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];
任何'NSDictionary'方法都可以在'NSMutableDictionary'上調用,包括便利的構造函數。然後,便利構造函數返回一個'NSMutableDictionary'實例(或類集羣中的具體子類)。所以,你可以做'NSMutableDictionary * mutableDict = [NSMutableDictionary dictionaryWithContentsOfFile:];' –
D'oh ...是的,我的壞! –