ループ内で NSMutableDictionary にいくつかの値を設定しようとしており、以下のように毎回辞書の値を NSMutableArray に割り当てています。
for(int i=0;i<=lastObj;i++){
[mutableDict setValue:[valuesArray objectAtIndex:i] forKey:@"Name"];
[mutableDict setValue:[uniqueArray objectAtIndex:i] forKey:@"SSN"];
//......then
**[mutableArray addObject:mutableDict];**/*not working perfectly all values s replaced by final mutableDict values (duplicate values)*/
しかし
**[mutableArray addObject:[mutableDict copy]];**/* Working Correctly !!! */
}
各反復のループ内で新しい値が mutableDictionary に割り当てられ、addObject とだけ言うと、mutableArray はすべての重複値を取得しますが、addObject:[mutableDict copy ] と言うたびに、配列は重複のない正しい一意の値を取得します。わかりません私が「コピー」と言うと、コンパイラーはどのような違いを感じますか?この違いを誰か教えてください。前もって感謝します。