У меня есть набор словарей. Я хотел бы извлечь массив со всеми элементами одного конкретного ключа словарей в исходном массиве. Можно ли это сделать без перечисления?
Из массива словарей сделать массив, содержащий значения одного ключа
Ответы (2)
Да, используйте NSArray -valueForKey:
метод.
NSArray *extracted = [sourceArray valueForKey:@"a key"];
person
David Gelhar
schedule
21.04.2010
@e.James, ты узнаешь, если спросишь и проявишь любопытство. Мне пришла в голову мысль, как это реализовать, потому что я не хотел зацикливаться и делать в стиле старой школы. Я рад, что искал способ сделать это, и, как вы говорите, узнал еще одну новую вещь, приветствую вас каждый день! :)
- person Itai Spector; 15.09.2016
Можем ли мы сделать это для набора ключей, или это доступно только для одного ключа?
- person nr5; 29.07.2017
Такой метод доступен в
Swift
?
- person Mathi Arasan; 09.08.2017
@user3589771 user3589771 проверьте этот вопрос stackoverflow.com/questions/26367261/ для некоторых возможных решений в Swift
- person David Gelhar; 09.08.2017
Спасибо, я видел, что Принятый ответ у меня не работает. Наконец, я использовал этот ответ. Я пробовал, если Swift предоставляет одну строку, например obj-c.
- person Mathi Arasan; 10.08.2017
Да, просто используйте Key-Value Coding, чтобы запросить значения ключа:
NSArray* names = [NSArray arrayWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:
@"Joe",@"firstname",
@"Bloggs",@"surname",
nil],
[NSDictionary dictionaryWithObjectsAndKeys:
@"Simon",@"firstname",
@"Templar",@"surname",
nil],
[NSDictionary dictionaryWithObjectsAndKeys:
@"Amelia",@"firstname",
@"Pond",@"surname",
nil],
nil];
//use KVC to get the names
NSArray* firstNames = [names valueForKey:@"firstname"];
NSLog(@"first names: %@",firstNames);
person
Rob Keniger
schedule
21.04.2010