2011-04-26 51 views
3

我使用的是志愿来获得变化的通知NSArrayController的的selectionIndex更改字典,包含NULL为selectionIndex

[contoller addObserver:self forKeyPath:@"selectionIndex" options:NSKeyValueObservingOptionNew context:NULL]; 

,当我设置使用setSelectedObjects选择:我得到通知selectionIndex,因为我希望改变。但是,当我尝试从更改字典中获取NSKeyValueChangeNewKey时,它始终返回NULL。

打印字典所示:

{ 样= 1; new =“”; }

这是因为selectionIndex值是一个NSUInteger,不能放在字典中,或者我做错了什么?

这对我来说并不是什么问题,因为当我收到这个通知时,我可以通过其他方式从控制器中获取selectionIndex,我只想知道为什么它没有按照我的预期做。

+0

我不认为它与selectionIndex作为一个NSUInteger任何待办事项 - 我认为它只是不支持。对不起,我找不到任何细节。 – hooleyhoop 2011-04-27 10:29:44

+0

一般来说,应该支持标量类型属性的KVO通知。如果你期待一个NSUInteger,你会得到一个NSNumber,而对于你期望得到一个NSValue的结构。我希望这可以工作,并且同样困惑,但它没有,但是解决方法很简单:将回调视为无状态通知,然后重新自己重新读取值。 – ipmcc 2011-12-15 14:41:28

回答