我将数组添加到字典中,然后从数组中删除所有对象

时间:2013-05-19 18:04:36

标签: ios nsarray nsmutabledictionary

我将数组添加到字典中,然后从数组中删除所有对象。 当我打印字典时,它也显示为空。表示字典中存在的数组数据也会删除。

if ([[[array objectAtIndex:0]objectAtIndex:i] isEqualToString:[filteredAry objectAtIndex:j]])
{
    [menuAry addObject:[array1 objectAtIndex:i]];
}

[tempDict setValue:menuAry forKey:[filteredAry objectAtIndex:j]];
[menuAry removeAllObjects];

为什么诱惑显示为空?

1 个答案:

答案 0 :(得分:1)

您要添加到字典中的数组与您要删除所有对象的数组完全相同。将它添加到字典中不会创建新对象,它只是添加对同一对象的引用。

如果要将它们分开,则应将副本添加到字典中,如下所示:

NSMutableArray *copiedArray = [[menuAry mutableCopy] autorelease];
[tempDict setObject:copiedArray forKey:[filteredAry objectAtIndex:j]];
//...

如果您使用ARC,则可以省略autorelease