我正在使用KVO来获取NSArrayController的selectionIndex更改的通知
[contoller addObserver:self forKeyPath:@"selectionIndex" options:NSKeyValueObservingOptionNew context:NULL];
当我使用setSelectedObjects设置选择内容时:我收到有关selectionIndex更改的通知,这与我期望的一样。但是,当我尝试从更改字典中获取NSKeyValueChangeNewKey时,它始终返回NULL。
打印字典显示:
{
kind = 1;
new =“”;
}
这是因为selectionIndex值是NSUInteger,不能放在字典中,还是我做错了什么?
对我来说这不是问题,因为当我收到此通知时,可以通过其他方式从控制器中获取selectionIndex,我只是想知道为什么它没有按照我的预期去做。
最佳答案
我在Lion 10.7.3上使用Xcode 4.2.1的10.6应用程序构建中看到此行为。
通知将触发,但更改字典始终为NULL。
就像您说的那样,一旦触发通知,您就可以手动获取selectionIndex,因此对我的应用程序来说不是问题。
我在Google上搜索了一下,发现大约是3年前,这是一个已知的错误,所以也许仍然是?
http://www.cocoabuilder.com/archive/cocoa/231886-problem-observing-selectionindex-of-an-array-controller.html