2
我试着做以下几点:如何添加NSArray作为NSMutableDictionary的一个NSMutableDictionary键?
NSMutableArray *myArr = [NSMutableArray arrayWithArray:[myDict objectForKey:@"myKey"]];
[myArr addObject:@"New string xxx"];
[myDict setObject:myArr forKey:@"myKey"];
// Write to file (done successfully)
正如你所看到的,我得到被存储在与键@"myKey"
一个plist中的数组,一些对象添加到它,并希望重新录制的plist中,当然还有一些额外的价值。
问题是,会发生以下情况在我的plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
<key>myKey</key>
<array>
<string>First entry on the plist</string>
<array>
<string>First entry on the plist</string>
<string>New string xxx</string>
</array>
</array>
</dict>
</plist>
所需的输出,当然是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
<key>myKey</key>
<array>
<string>First entry on the plist</string>
<string>New string xxx</string>
</array>
</dict>
</plist>
两两件事:1.一个的NSLog(@ “myDict:%@”,myDict);将显示字典而无需编写它。 2.仔细想想每个陈述都在做什么。将复合语句分解为多个语句,每个语句都做一件事。一个例子是做两件事的第一条语句,访问字典的内容并初始化一个数组。这将使得理解发生的事情变得容易或者明确表明一个陈述不被理解。 – zaph
发布代码似乎没有问题。在您发布的代码执行之前,'myDict'是否处于预期状态,并且在它之后处于意外状态? –