2012-01-05 88 views
1

我想根據NSDictionary的計數設置UITabItem的徽章值。我想這樣做沒有太多的代碼。 KVO似乎要走了,但我似乎無法找到任何關於簡單地觀察字典數量的事情,這讓我懷疑這是不可能的。是否有可能使用KVO觀察NSDictionary的計數?

所以,我的問題:是否有可能使用KVO觀察NSDictionary的計數?

+0

我的猜測是它不是,因爲我想'count'會被定義爲只讀屬性,而不是方法,如果它是可觀察的。愚蠢的問題,但你剛剛嘗試過嗎? – paulbailey 2012-01-05 17:06:38

+0

是的,我試過了。我根本沒有打電話給我的觀察員方法來查字典。我意識到伯爵是一種方法,但KVO的收藏品有一些特殊的醬油。 – ageektrapped 2012-01-05 17:23:02

+0

鑑於在其他情況下(如'NSOperation')可觀察的屬性被明確列出,我會說你運氣不好。 – paulbailey 2012-01-05 17:47:34

回答

1

將字典包裝在另一個具有可觀察計數屬性的對象(代理)中。你可能都是花哨的(以更多的代碼爲代價)並使用調用轉發,但是你可能只需要包裝basic -setObject:forKey:和-removeObjectForKey :(和可能的-removeAllObjects)方法,並且只需設置count屬性無論字典的數值是多少。

KVO對此是矯枉過正。從代理中,在插入或刪除字典中的條目時,會使適當的視圖/標籤變髒。

+0

使用count屬性創建代理。 – ageektrapped 2012-01-12 18:28:03