从ios中的nsmutableDictionary中删除一个键

Posted

技术标签:

【中文标题】从ios中的nsmutableDictionary中删除一个键【英文标题】:Removing a key from nsmutableDictionary in ios 【发布时间】:2013-09-11 06:55:01 【问题描述】:

我有一个NSMutableDictionary,它以 JSON 格式从服务器返回。

从中我必须删除一个为空且不使用的键。我必须同时删除键和值

我们怎样才能删除那个键....

关键值是

appointmentType = 1;
description = Right;
endDate = "2013-09-11";
endTime = "02:30:00";
flgHolidaySchedule = 1;
flgSiteSetupSchedule = 1;
therapistId = "maheswaran@excelgoodies.com";
uri = "<null>";

现在我必须从字典中删除 uri Key....

【问题讨论】:

来吧,为什么不阅读NSMutableDictionary Class Reference 【参考方案1】:

遍历字典并查找任何空条目并将其删除。

NSMutableDictionary *prunedDictionary = [NSMutableDictionary dictionary];
for (NSString * key in [yourDictionary allKeys])

    if (![[yourDictionary objectForKey:key] isKindOfClass:[NSNull class]])
        [prunedDictionary addObject:[yourDictionary objectForKey:key] forKey:key];

之后,prunedDictionary 应该包含原始字典中的所有非空项。

【讨论】:

我的要求不是删除空值......我已经从字典中删除键......如果我打印字典的所有键,则不能打印删除的键......【参考方案2】:

试试下面的代码:

NSMutableDictionary *myTemDictionary = [NSMutableDictionary dictionary];

for (NSString * key in [yourDictionaryFromJSON allKeys])

    if (![[yourDictionaryFromJSON objectForKey:key] isKindOfClass:[NSNull class]])
        [myTemDictionary addObject:[yourDictionary objectForKey:key] forKey:key];


NSLog(@"%@", myTemDictionary); // check it in console your dictionary has not any NULL value

【讨论】:

谢谢....但我的要求不是删除空值....我已经从字典中删除键....如果我打印字典的所有键,则删除的键不能是印刷...【参考方案3】:

其实很简单:

[yourDictionaryFromJSON removeObjectForKey:@"uri"];

【讨论】:

我的要求不是删除空值......我已经从字典中删除键......如果我打印字典的所有键,则不能打印删除的键......

以上是关于从ios中的nsmutableDictionary中删除一个键的主要内容,如果未能解决你的问题,请参考以下文章

无法从 NSMutableDictionary iOS 应用程序中检索 XMPP JID。

如何从 nsmutabledictionary 中删除键当该键的值在 ios 中为空或 null 时?

单例、NSMutableDictionary 和 plist

从 NSMutableDictionary 构建 NSMutableArray 导致 NSException

如何从两个 plist 中添加 NSMutableDictionary 中的信息?

iOS:Xcode 4.2:Leaks Instrument 说我的 NSMutableArray 和 NSMutableDictionary 有泄漏,但我看不到在哪里