从键为空字符串的 NSDictionary 中删除值

Delete Values from NSDictionary for which Key is Empty String

我收到 JSON 这样的回复:

{
    "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
        }
      }
}

我在 tableView 中按索引设置这些值。从这个 JSON 响应中,我不必显示键为空字符串的值。如何从 NSDictionary 中删除这个对象。

你可以利用removeObjectForKey

[dictionary removeObjectForKey:@""];

示例代码:

//your json dictionary here!
NSDictionary *finalDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"11111111",@"",@"00000000",@"testkey1", nil];

NSMutableDictionary *dictionaryColection = [[NSMutableDictionary alloc] initWithDictionary:finalDictionary];
NSLog(@"Dictionary Full: %@", dictionaryColection);

[dictionaryColection removeObjectForKey:@""];
finalDictionary = dictionaryColection;
NSLog(@"Final dictionary removed: %@", finalDictionary);

日志:

Dictionary Full: {
    "" = 11111111;
    testkey1 = 00000000;
}

Final dictionary removed: {
    testkey1 = 00000000;
}

在swift3.0

dictionary.removeObject(forKey: "")

您不能从 NSDictionary 中删除这些对象。 NSDictionary 是一个不可变对象。
但是你可以制作一个可变副本并删除不需要的键:

//remove from mutable dictionary
NSDictionary* dictionary = [self getData];
NSMutableDictionary* mutableDictionary = [dictionary mutableCopy];
[mutableDictionary removeObjectForKey:@""];
self.data = mutableDictionary;