Создать NSDictionary из другого NSDictionary? - PullRequest
4 голосов
/ 24 ноября 2011

У меня есть NSDictionary, который регистрирует это:

    address = "30 East 23rd Street";
    address1 = "30 East 23rd Street";
    address2 = "";
    age = 32;
    alert = "";
    "blood_pressure_1" = "";
    "blood_pressure_2" = "";
    bmi = "";

Я хочу создать новый NSDictionary, который содержит только несколько ключей из старого, таких как age, bmi и alert. Как я могу это сделать?

Ответы [ 4 ]

9 голосов
/ 24 ноября 2011

Это может быть немного проще:

NSArray *keys = [NSArray arrayWithObjects:@"address", @"address1", @"address2", nil];
NSDictionary *subset = [NSDictionary dictionaryWithObjects:
    [fullDictionary objectsForKeys:keys notFoundMarker:@""]
    forKeys:keys];
3 голосов
/ 24 ноября 2011
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
                            [oldDict objectForKey:@"address"],  @"address",
                            [oldDict objectForKey:@"address1"], @"address1",
                            [oldDict objectForKey:@"address2"], @"address2",
                            nil];

Очевидно, вы можете изменить ключи по мере необходимости ...

2 голосов
/ 24 ноября 2011
NSMutableDictionary* d = [NSMutableDictionary dictionaryWithDictionary: bigDict];
[d removeObjectsForKeys: [NSArray arrayWithObjects: @"address", @"age", nil]];
1 голос
/ 23 февраля 2015

Еще проще

NSDictionary *newDictionary = [oldDictionary dictionaryWithValuesForKeys:@[@"age", @"bmi", @"alert"]];
...