Подсчет значений в NSDictionarys в NSArray - PullRequest
0 голосов
/ 24 августа 2011

У меня есть NSArray, полный объектов NSDictionary.Каждый объект словаря имеет ключ: значение:

цвет: красный

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

Я быхотелось бы иметь возможность извлекать каждый цвет и подсчитывать, сколько у меня есть каждого, поэтому:

красный: 3 словаря желтый: 4 словаря

и т. д. ... Как именно это будет возможно?Просто перебирайте словари, пока не найдете уникальный цвет, затем выполните поиск в массиве, используя NSPredicate, для этого цвета, промойте, повторите?

1 Ответ

2 голосов
/ 24 августа 2011

Вы можете просто сохранить цвет отображения словаря на количество словарей с этим цветом. Например:

NSMutableDictionary *counts = [NSMutableDictionary dictionary];
for (NSDictionary *dict in myArray) {
    NSString *color = [dict objectForKey:@"color"];
    NSNumber *val = [counts objectForKey:color];
    val = [NSNumber numberWithUnsignedInteger:1+[val unsignedIntegerValue]];
    [counts setObject:val forKey:color];
}
...