You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:28:01