2012-05-23 60 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];