我正在使用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

10-08 05:53