8

我如何计算“账单”中有多少物品?

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

谢谢!

4

4 回答 4

6

一个天真的解决方案会假设 OP 想要 count bills,这恰好是一个数组,所以解决方案是

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

但是,如果您的字典中有多个要计数的对象,那么将它们全部枚举是唯一的方法。

于 2012-07-31T13:47:13.577 回答
4
NSUInteger keyCount = [resultsDictionary count];
NSLog(@"%i", keyCount); 

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

于 2012-07-31T13:44:33.213 回答
1
NSMutableArray *billsArray =[[NSMutableArray alloc] init];
billsArray = [resultsDictionary valueForKey:@"bills"];//returns array
NSUInteger keyCount = [billsArray count];
NSLog(@"%i", keyCount);

我想这会对你有所帮助。

于 2012-07-31T13:45:08.243 回答
1

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

如果要获取所有项目,则需要使用块枚举并递归地询问每个字典的计数是多少,然后求和。您必须编写代码 - 没有系统提供的方法可以做到这一点。查看类引用中的块枚举(即枚举....)。

您还可以询问每个项目它是什么 - 如果“isKindOf:”是 NSDictionary 或 NSArray,则获取计数,否则将其视为 1。

于 2012-07-31T13:43:21.917 回答