我将数组添加到字典中,然后从数组中删除所有对象。当我打印字典时,它也显示为空。还可以删除字典中存在的数组数据。
if ([[[testMenuGroupAry objectAtIndex:0]objectAtIndex:group] isEqualToString:[filteredAry objectAtIndex:objCount]])
{
NSLog(@"object count is %d",objCount);
[groupAry addObject:[array1 objectAtIndex:group]];
}
[tempDict setValue:groupAry forKey:[filteredAry objectAtIndex:objCount]];
[groupAry removeAllObjects];
NSLog(@"before Dictionary temp Dict : %@",tempDict);
判决也显示为空。为什么?
答案 0 :(得分:1)
因为您删除了所有元素。将对象添加到集合不会复制它们,只需保留实例。
答案 1 :(得分:1)
这是因为您的字典仅存储对数组的引用。它不会复制整个数组。您可以做的是先复制数组,然后将其存储在字典中。
答案 2 :(得分:0)
更改此行代码:
[groupAry addObject:[array1 objectAtIndex:group]];
到
[groupAry addObject:[[array1 objectAtIndex:group] mutableCopy]];
这将有助于保留对象,并且您的数组不会变为零。
答案 3 :(得分:0)
如果你想要判刑不是空的。你应该做这个: [tempDict setValue:[NSMutableArray arrayWithArray:groupAry] forKey:[filteredAry objectAtIndex:objCount]]; 它制作了groupAry的副本。