2017-06-27 8 views
-4

NSDictionaryの番号の配列を作成するアプリケーションで作業しています。 NSMutableArrayにNSMutableDictionaryを追加しようとすると、以前に追加された配列の要素が置き換えられます。私は何が起こっているのか分からない。NSMutableArrayの要素を追加した後、以前の要素が置き換えられます

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回印刷されました。

ありがとうございます。

答えて

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) 
0

はループ内にある必要があります。..

let tempDict = NSMutableDictionary() 
関連する問題