2012-07-31 77 views
4

如何計算我在「賬單」裏面有多少itens?NSDictionary Count

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

謝謝!在字典中

如果你想獲得所有項目

+0

你現在這樣做的方式有什麼問題? – trojanfoe 2012-07-31 13:39:32

+0

確切的說,我認爲你正在寫計數到NSLog,是不是你想要的? – dotnetcoder 2012-07-31 13:42:51

+0

按預期返回1而不是2。 – 2012-07-31 14:14:00

回答

6

一個天真的解決方案將承擔OP要數bills,這恰好是一個數組,這樣的解決方案將是

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

但是,如果您想要與一個以上的對象字典計數,然後列舉它們是唯一的出路。

+0

賓果!那就是我需要的!非常感謝! – 2012-07-31 14:15:13

1

NSUInteger count = [bills count]; //頂級項目,那麼你需要使用塊枚舉和遞歸要求每一個字典什麼的計數,然後總和。你必須編寫代碼 - 沒有系統提供的方法來做到這一點。查看類參考中的塊枚舉(即枚舉....)。

,你也可以要求每一個項目是什麼 - 如果「isKindOf:」一個的NSDictionary的NSArray或者,獲取計數,否則把它當作1

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

是真實的,但也可以使用[resultsDictionary allKeys];這將返回一個鍵數組,你可以直接得到它的數量。欲瞭解更多信息,請訪問docs:v

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

我認爲這會對您有所幫助。

+0

不錯!實際上會使用這個肯定!謝謝! – 2012-07-31 14:15:47