0
mutableArrayに新しい要素を追加すると、以前に追加された要素(辞書からフェッチ)も新しく追加された要素で置き換えられます。 HEREnsmutableArray最後に追加されたオブジェクトで要素を置換する
for (int i = 0; i < [_ContentArray count]; i++){
if ([[[_ContentArray objectAtIndex:i]objectForKey:@"type"] isEqualToString:@"video"]) {
NSString *videoUrl = [[_ContentArray objectAtIndex:i]objectForKey:@"url"];
NSString *videoName = [[_ContentArray objectAtIndex:i]objectForKey:@"title"];
[_videoContentDict setValue:videoUrl forKey:@"url"];
[_videoContentDict setValue:videoName forKey:@"title"];
[_videoArray addObject:_videoContentDict];
NSLog(@"%@%%",_videoArray);
}
}
- _videoContentDictがmutableDictionary _videoArrayである私はあなたがNSMutableArray
にして新しいオブジェクトを持つたびに、古いオブジェクトを取得すると思いますmutableArray
は、両方のためのメモリを割り当てられたことがありますか?別の配列に値を追加するために辞書を使う理由は何ですか? NSObjectを使用して値を格納できます。 –
あなたは、yは1つの辞書を持っています。その辞書を 'videoArray'に繰り返し追加しています。辞書を変更すると、その変更はすべての要素が同じ辞書への参照であるため、配列内のすべての要素に反映されます。 – Paulw11