2012-01-05 86 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