Получение массива со значениями из массива NSDictionary - PullRequest
1 голос
/ 02 марта 2012

У меня есть массив с 4 словарями с ключом @ "preference", как показано ниже

 (
        {
          preference = Nose;
        },

        {
          preference = "Heart rate";
        },

        {
          preference = Glucose;
        },

        {
          preference = Food;
        }
)

Теперь я хочу получить массив для таких значений словаря, как "

 (
    Nose, Heart rate,  Glucose,  Food
 )

Как бы мне это достать .. Заранее спасибо

Ответы [ 4 ]

23 голосов
/ 02 марта 2012

Однострочник:

NSArray *resultingArray = [arrayOfDictionaries valueForKeyPath:@"preference"];
9 голосов
/ 02 марта 2012

Попробуйте:

NSArray *result = [dictionaryObject valueForKeyPath:@"preference"];

Это решит вашу проблему

2 голосов
/ 02 марта 2012

Попробуйте с этим кодом:
myArray - ваш первый массив mySecondArray - это массив, который у вас есть в конце

 NSMutableArray *mySecondArray = [[NSMutableArray alloc] init];

        for (int i = 0; i < [myArray count] ; i++)
        {
            NSDictionary *tempDict = [myArray objectForIndex:i];
            [mySecondArray addObject:[tempDict objectForKey@"preference"]];


        }
2 голосов
/ 02 марта 2012

Сделайте что-то вроде этого:

NSMutableArray *collectedValues = [NSMutableArray arrayWithCapacity:array.count];

for (NSDictionary *dict in array) {
    NSString *value = [dict objectForKey:@"preference"];
    if (value) {
        [collectedValues addObject:value];
    }
}
...