2011-04-26 56 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

回答