我在NSTableView排序上遇到了一个奇怪的问题。
我用NSTableView创建了一个简单的应用程序 有4列。然后我用KVC把它绑定到了 阵列控制器。
然后我将一些数据添加到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:,一切都可以正常工作......
答案 0 :(得分:0)
NSMutableArray
中对象的其中一个值(例如属性或键)属于NSNumber
类。由于此类处理数字,因此它不响应caseInsensitiveCompare:
选择器。此选择器对NSString
有意义。
表格视图中显示数字值的列应继续使用compare:
对值进行排序。