如何移除NSDictionary中空字符串键对应的元素以适配TableView展示?
如何从NSDictionary中删除空字符串键对应的对象?
首先得明确:NSDictionary是不可变类型,你没法直接对它做删除操作,必须先转换成可变的NSMutableDictionary才行。下面是具体的实现步骤:
1. 转换为可变字典
先把原始字典里的partner_wise对应的子字典转成可变版本:
// 假设这是你拿到的原始JSON解析后的字典 NSDictionary *originalResponseDict = @{@"partner_wise": @{ @"partner1": @{@"processing": @254, @"complete": @0, @"track_invoice": @0, @"bar_code": @0}, @"": @{@"processing": @0, @"complete": @0, @"track_invoice": @0, @"bar_code": @0}, @"partner2": @{@"processing": @0, @"complete": @0, @"track_invoice": @0, @"bar_code": @0} }}; // 取出partner_wise对应的字典,转成可变字典 NSMutableDictionary *mutablePartnerDict = [originalResponseDict[@"partner_wise"] mutableCopy];
2. 移除空字符串键的对象
如果确定只有一个空字符串键,直接调用移除方法即可:
// 移除空字符串对应的键值对 [mutablePartnerDict removeObjectForKey:@""];
要是担心后续可能出现多个空字符串键,也可以遍历所有键来批量移除,这种方式更通用:
// 先收集所有需要移除的空键 NSMutableArray *keysToRemove = [NSMutableArray array]; for (NSString *key in mutablePartnerDict.allKeys) { if ([key isEqualToString:@""]) { [keysToRemove addObject:key]; } } // 批量移除 [mutablePartnerDict removeObjectsForKeys:keysToRemove];
3. (可选)更新回原始字典结构
如果需要把修改后的字典重新组合成原来的响应结构,可以创建一个新的不可变字典:
NSDictionary *updatedResponseDict = @{@"partner_wise": mutablePartnerDict};
这样处理后,mutablePartnerDict里就只剩下partner1和partner2的有效数据了,完全可以直接拿来填充你的TableView~
内容的提问来源于stack exchange,提问作者Shivam Tripathi
相关产品推荐
相关产品推荐

