我的问题是关于iPhone开发。
我试图弄清楚是否有办法只统计字典中的字典数量。
例如,让我们说这是我的字典字典包含5个元素:
我想只计算NSDictionaries ...所以返回值应为3。
有没有办法实现这个目标?
感谢。
答案 0 :(得分:4)
NSSet *dictKeys = [myDict keysOfEntriesPassingTest:^(id key, id obj, BOOL *stop) {
return [obj isKindOfClass:[NSDictionary class]];
}];
NSUInteger numberOfDicts = [dictKeys count];
答案 1 :(得分:1)
NSDictionary* root = ...;
__block NSUInteger count = 0;
[root enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL* stop) {
if ( [obj isKindOfClass: NSDictionary.class] ) ++ count;
*stop = NO;
}];
当然
NSUInteger count = 0;
for (id obj in root) {
if ( [obj isKindOfClass: NSDictionary.class] ) ++ count;
}
也可以。
答案 2 :(得分:1)
__block NSInteger countOfDictionaries = 0;
[dictionary enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block {
if ([obj isKindOfClass:[NSDictionary class]]) {
countOfDictionaries++;
}
}];
如上所示,通过测试对象的类,只需枚举字典中的每个对象并保留每个“NSDictionary”对象的计数。
答案 3 :(得分:0)
使用NSEnumrator遍历您的NSDictionary并执行以下测试:
if([myObject class] == [NSDictionary class])c ++;