NSDictionary计数

我怎么能算出“账单”里面有多less呢?

bills = ( { id = 1; name = "Cursus Nibh Venenatis"; value = "875.24"; }, { id = 2; name = "Elit Fusce"; value = "254.02"; } ); 

我这样计算:

 NSUInteger keyCount = [resultsDictionary count]; NSLog(@"%i", keyCount); 

谢谢!

一个天真的解决scheme会假设OP要计算bills ,这恰好是一个数组,所以解决scheme将是

 NSLog(@"Count: %i", [[resultsDictionary objectForKey: @"bills"] count]); 

然而,如果你有一个以上的对象的字典,你想要计数,那么枚举它们是唯一的方法。

 NSUInteger keyCount = [resultsDictionary count]; NSLog(@"%i", keyCount); 

是真的,但你也可以使用[resultsDictionary allKeys]; 这将返回一个键数组,你可以直接得到它的计数。 欲了解更多信息,请访问文档 :v

NSUInteger count = [bills count]; //字典中的顶级项目

如果你想得到所有的项目,那么你需要使用块枚举和recursion问每个字典什么是计数,然后求和。 你必须编写代码 – 没有系统提供的方法来做到这一点。 查看类参考中的块枚举(即枚举….)。

你也可以问每个项目是什么 – 如果是“isKindOf:”NSDictionary或NSArray,得到计数,否则视为1。

 NSMutableArray *billsArray =[[NSMutableArray alloc] init]; billsArray = [resultsDictionary valueForKey:@"bills"];//returns array NSUInteger keyCount = [billsArray count]; NSLog(@"%i", keyCount); 

我认为这对你有帮助。