Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Iam将数组添加到字典中,然后从数组中删除所有对象_Ios_Nsarray_Nsmutabledictionary - Fatal编程技术网

Ios 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

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

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就是我认为您需要的。