我有一个像这样的NSMutableDictionary:
<dict>
<key>Dictionaries</key>
<dict>
<key>One</key>
<dict>
<key>Data</key>
<data>
qqqqqg==
</data>
</dict>
<key>Two</key>
<dict>
<key>Data</key>
<data>
qqqqqg==
</data>
</dict>
</dict>
</dict>
本质上是一个[NSMutableDictionary]
,它有其他子词典,全部使用相同数量的对象和键。问题在于,当我尝试在现有的词典中添加另一个词典时。它消灭了所有其他人。我尝试过使用多种功能,包括setObject: forKey:
,setDictionary: forKey:
,addEntriesFromDictionary:
......
NSMutableDictionary* mainDictionary = [[NSMutableDictionary alloc] initWithDictionary:otherDictionary];
dictionaries = [mainDictionary objectForKey:@"Dictionaries"];
[dictionaries addEntriesFromDictionary:otherDictionary];
我必须做错事,或者不使用正确的功能。如何使用Three
,Four
等附加我的字典的示例将非常有用。感谢。
答案 0 :(得分:1)
进行此次通话时
NSMutableDictionary* mainDictionary = [[NSMutableDictionary alloc] initWithDictionary:otherDictionary];
您唯一可以获得的可变字典是外部字典(即mainDictionary
)。如果otherDictionary
内的对象是可变的,它们将保持可变;如果otherDictionary
内的对象是不可变的,它们将保持不变。
您传递给otherDictionary
的{{1}}似乎是从属性列表构建的。如果是这种情况,您可以通过将initWithDictionary:
传递给NSPropertyListMutableContainers
方法来强制所有容器变为可变,如下所示:
propertyListWithData:options:format:error: