从NSMutableArray中收集特定对象的计数

时间:2011-02-20 08:24:23

标签: iphone objective-c nsmutablearray nsarray enumeration

嘿伙计们女孩 我想知道如何在数组中找到特定类型对象的对象计数。 例如,我在随机位置的NSMutableArray中有6个'云',我在这个NSMutableArray中也有4个'龙'。

我如何收集整数6?

我正在思考以下几点:

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

非常感谢任何帮助。 日Thnx, 奥利弗。

3 个答案:

答案 0 :(得分:6)

另一种方法是使用块:

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]);

答案 1 :(得分:5)

int result = 0;
for (NSObject *object in _somearray) {
    if ([object isKindOfClass:[SomeClass class]])
        result++;
}

result是您要查找的计数

答案 2 :(得分:1)