2013-05-19 60 views
0

Iam將數組添加到字典中,然後從數組中刪除所有對象。 當我打印字典時,它也顯示爲空。表示字典中的數組數據也在刪除。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顯示爲空?

+0

你初始化了tempDict嗎? – Joshua

+0

@joshua yes ..我已初始化 – Jyoshna

+0

嘗試在調用removeAllObject之前放一個NSlog,並查看該對象是否存在,然後在調用removeAllObject進行確認後再次放置NSlog。如果後面的tempDict在最後是空的,那麼@omz的答案就是我認爲你需要的。 – Joshua

回答

1

您要添加到字典中的數組與您要刪除所有對象的數組是完全相同的對象。將它添加到字典中不會創建一個新對象,它只會向同一個對象添加引用。

如果你想將它們分開,你應該添加一個副本到字典中,像這樣:

NSMutableArray *copiedArray = [[menuAry mutableCopy] autorelease]; 
[tempDict setObject:copiedArray forKey:[filteredAry objectAtIndex:j]]; 
//... 

如果使用ARC,你可以離開了autorelease

相關問題