Соберите количество определенного объекта из NSMutableArray - PullRequest
1 голос
/ 20 февраля 2011

Привет, парни и девушки, мне интересно, как я могу найти количество объектов определенного типа в массиве.Например, у меня есть 6 «облаков» в NSMutableArray в случайных местах, у меня также есть 4 «дракона» в этом NSMutableArray.

Как мне собрать целое число 6?

Я что-то думалпо направлениям:

int z = [[SomeClass *clouds in _somearray] count];

Любая помощь будет принята с благодарностью.Спасибо, Оливер.

Ответы [ 3 ]

6 голосов
/ 20 февраля 2011

Еще один способ использования блоков:

Class cloadClass = NSClassFromString(@"Cloud");
NSArray *a = /* you array with clouds and dragons */;

NSIndexSet *clouds = [a indexesOfObjectsPassingTest: 
    ^(id obj, NSUInteger idx, BOOL *stop) {
        return [obj isKindOfClass:cloadClass];
    }];

// now we can count clouds
NSLog(@"%d", [clouds count]);

// but also we now can return our clouds immediately and
NSLog(@"%@", [a objectsAtIndexes:clouds]);
5 голосов
/ 20 февраля 2011
int result = 0;
for (NSObject *object in _somearray) {
    if ([object isKindOfClass:[SomeClass class]])
        result++;
}

result - это количество, которое вы ищете

1 голос
/ 20 февраля 2011

Если вы ищете, сколько раз появляется конкретный экземпляр объекта, вы можете сделать:вручную и считать.

...