从NSMutableDictionary中删除特定对象

时间:2013-04-28 13:45:59

标签: xcode arrays nsmutabledictionary

我在NSMutableDictionary中保存不同的代码,稍后检查特定代码是否在dict中。

不,我想删除包含代码的条目。

在这里,您可以看到我的数组与dict的外观如何:

2013-04-28 12:43:23.877 myApp[9422:907] pushArray: (
    {
    code = 123;
    titel = "Test 01";
},
    {
    code = 456;
    titel = "Test 02";
},
    {
    code = 789;
    titel = "Test 03";
}
)

在这里,您可以看到我如何搜索代码:

for(NSMutableDictionary * pushDict in pushArray) {
    NSString * codeFromDict = [pushDict objectForKey: @"code"];
    if([code_I_search isEqualToString: codeFromDict]){
        // This is called if the code is found
    }
}

这一切都运行正常,但现在我现在还没有删除条目......

结果应为:

如果我搜索代码789并说“删除”,则会将其删除:

{
code = 789;
titel = "Test 03";
}

我尝试了[pushDict removeAllObjects];,但那不起作用。

1 个答案:

答案 0 :(得分:1)

你想要删除整个条目,对吗?

如果是,请将“pushArray”设为NSMutableArray,然后您可以通过以下方式删除违规字典条目:

for(NSDictionary * pushDict in pushArray) {
    NSString * codeFromDict = [pushDict objectForKey: @"code"];
    if([code_I_search isEqualToString: codeFromDict]){
        [pushArray removeObject: pushDict];
    }
}

你在那里做的方式是,你要从pushDict中删除所有对象,而不是从(不可变)数组中删除实际的pushDict对象。