Ios Iam将数组添加到字典中,然后从数组中删除所有对象
Iam将数组添加到字典中,然后从数组中删除所有对象。 当我打印字典时,它也显示为空。表示字典中的数组数据也在删除Ios Iam将数组添加到字典中,然后从数组中删除所有对象,ios,nsarray,nsmutabledictionary,Ios,Nsarray,Nsmutabledictionary,Iam将数组添加到字典中,然后从数组中删除所有对象。 当我打印字典时,它也显示为空。表示字典中的数组数据也在删除 if ([[[array objectAtIndex:0]objectAtIndex:i] isEqualToString:[filteredAry objectAtIndex:j]]) { [menuAry addObject:[array1 objectAtIndex:i]]; } [tempDict setValue:menuAry forKey:[filteredA
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,您可以省去
自动释放
是否初始化了tempDict?@joshua yes。。我已初始化尝试在调用removeAllObject之前放置NSlog,查看对象是否存在,并在调用removeAllObject后再次放置NSlog以进行确认。如果后面的tempDict在结尾处是空的,那么@omz answer就是我认为您需要的。