我将数组添加到字典中,然后从数组中删除所有对象。 当我打印字典时,它也显示为空。意味着字典中存在的数组数据也被删除。
if ([[[array objectAtIndex:0]objectAtIndex:i] isEqualToString:[filteredAry objectAtIndex:j]])
{
[menuAry addObject:[array1 objectAtIndex:i]];
}
[tempDict setValue:menuAry forKey:[filteredAry objectAtIndex:j]];
[menuAry removeAllObjects];
为什么 tempdict 显示为空?
最佳答案
您要添加到字典中的数组与您要从中删除所有对象的数组是同一对象。将其添加到字典中并不会创建新对象,它只是添加对同一对象的引用。
如果你想将它们分开,你应该向字典添加一个副本,如下所示:
NSMutableArray *copiedArray = [[menuAry mutableCopy] autorelease];
[tempDict setObject:copiedArray forKey:[filteredAry objectAtIndex:j]];
//...
如果您使用 ARC,则可以省略 autorelease
。
关于ios - 我将数组添加到字典中,然后从数组中删除所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637784/