2013-03-25 2 views
1

Итак, вот моя проблема.Создать новый словарь из существующего путем фильтрации некоторых значений

У меня есть массивы объектов (класс лиц), добавленных в словарь. Каждый содержит fullName и несколько других свойств. Я создал словарь по ключам цикла генерации по

NSString -stringWithFormat:@"person%d" 

Просто для простоты позволяет сказать, что мой словарь выглядит

NSDictionary *[email protected]{@"person1": @"Ilena Jennifer DCruz", @"person2":@"James Bond", @"person3":@"Skylark", @"person4":@"Xan Xiaa Zuang Ming"}; 

Теперь мне нужен словарь только с первым именем для каждого человека.

Как это сделать?

+0

Почему вы хотите это сделать, если ваши данные хорошо структурированы. Вы можете перечислить через коллекцию, чтобы получить только имена. Если этот процесс повторяется, подумайте о создании модельного класса для человека. В качестве примечания ваша структура словаря может быть улучшена, если идентификатор человека будет «person1», «person2», вам может понадобиться только массив. – Anupdas

+0

@ Анупдас: я получаю от JSON –

ответ

11

Попробуйте это:

NSDictionary *[email protected]{@"person1": @"Ilena Jennifer DCruz", 
        @"person2":@"James Bond", 
        @"person3":@"Skylark", 
        @"person4":@"Xan Xiaa Zuang Ming" 
        }; 

NSMutableDictionary *firstNameDict=[NSMutableDictionary new]; 
for (NSString *key in dict) { 
    [firstNameDict setObject:[dict[key]componentsSeparatedByString:@" "][0] 
         forKey:key]; 
} 
NSLog(@"->%@",firstNameDict); 

Выход:

 
->{ 
    person1 = Ilena; 
    person2 = James; 
    person3 = Skylarl; 
    person4 = Xan; 
} 
Смежные вопросы