我在NSTableView sort上遇到了一个奇怪的问题。
我创建了一个简单的应用程序与NSTableView,其中有4列。然后,我使用KVC将其绑定到一个Array控制器。
然后,我向NSMutableArray添加了一些数据。
Bulid&&运行应用程序,我可以看到表中的数据,通过单击标题,可以正确地对数据进行排序。
到目前为止,一切都很好。
然后,我尝试将"caseInsensitiveCompare“添加到每一列。因此,我打开IB,为每一列设置排序关键字和选择器("caseInsensitiveCompare:")。
然后Bulid&&运行应用程序,但当我单击标题进行排序时,我收到了错误消息:
-[NSCFNumber caseInsensitiveCompare:]: unrecognized selector sent to instance 0x1006254f0
-[NSCFNumber caseInsensitiveCompare:]: unrecognized selector sent to instance 0x1006254f0
......然后,我尝试删除每个列的排序关键字和选择器中的所有内容。这个应用程序又变得正常了。
什么地方出问题了?我真的很困惑..。
ps:如果我使用compare:而不是caseInsensitiveCompare:,一切都会正常工作……
发布于 2013-07-18 12:44:32
NSMutableArray中对象的其中一个值(如属性或键)属于NSNumber类。因为这个类处理数字,所以它不响应caseInsensitiveCompare:选择器。此选择器对NSString有意义。
表视图中显示数值的列应该继续使用compare:对值进行排序。
https://stackoverflow.com/questions/4982021
复制相似问题