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'是否處於預期狀態,並且在它之後處於意外狀態? –