我在app上工作,我想在其中创建包含NSDictionary数量的数组。当我试图在NSMutableArray中添加NSMutableDictionary时,之前添加的该元素的元素将被替换。我不知道发生了什么。代码如下:
var paynowArray = NSMutableArray()
let tempDict = NSMutableDictionary()
for i in 0...selectedEmenetsArray.count-1 {
tempDict.removeAllObjects()
tempDict.setValue(selectedIdAry[i], forKey: "serviceId")
tempDict.setValue(selectedAmountAry[i], forKey: "serviceAmount")
paynowArray.add(tempDict)
}
print(paynowArray)
打印数组最后添加的NSMutableDictionary打印了n次。
提前致谢。
答案 0 :(得分:1)
在for循环中创建tempDict 。您应该为每个元素分配字典。否则,您每次都要更换相同的内存位置值。
var paynowArray = NSMutableArray()
for i in 0...selectedEmenetsArray.count-1 {
var tempDict = NSMutableDictionary()
tempDict.setValue(selectedIdAry[i], forKey: "serviceId")
tempDict.setValue(selectedAmountAry[i], forKey: "serviceAmount")
paynowArray.add(tempDict)
}
print(paynowArray)
答案 1 :(得分:0)
应该在循环内..
let tempDict = NSMutableDictionary()