当我在添加到字典中后从数组中删除值。数组值是否从iOS中的字典中删除?

时间:2013-05-16 10:43:19

标签: ios nsarray nsdictionary

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

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);

判决也显示为空。为什么?

4 个答案:

答案 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的副本。