2012-02-25 45 views
2

我有一個關於一個NSArray兩個問題:NSArray和NIL值。如何非空的返回數(「計數」)值的數組

  • 我怎麼能零值添加到陣列?會加入[NSNull null]是否正確?
  • 什麼是 的最佳代碼返回您的視圖中 這個數組的零和非零值的數量(計數)?

謝謝!

+0

如果你需要算你有多少元素有一個集合在嘗試此使用NSCountedSet類而不是NSArray。 – 2012-02-25 16:06:40

回答

6

不能添加nilNSArray,這樣你纔會有像你說的使用[NSNull null]來代替。

你可以指望的nilNSNull)項這樣的數字:

NSIndexSet *nilIndexes = [array indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) { 
    return obj == [NSNull null]; 
}]; 

NSUInteger count = nilIndexes.count; 
+0

謝謝你的代碼片段! – AlexR 2012-02-25 17:11:26

4
  • 您不能添加零值,所以請使用[NSNull null]
  • 做一個NSArray的類別,並遍歷它計數null對象。
1

邁克灰MACollectionUtilities

#define ARRAY(...) ([NSArray arrayWithObjects: IDARRAY(__VA_ARGS__) count: IDCOUNT(__VA_ARGS__)])