我有多个NSTable,多个NSArray控制器绑定到CoreData。我成功地有一个表排序。当我将相同的设置应用于任何其他NSTable(列)和NSArraycontroller时,它将无法工作。
在列中,我有排序键,选择器和顺序集。
在NSArraycontroller中,我将Sort Descriptors设置如下:
绑定到:共享用户默认控制器
控制器密钥:值
模型关键路径:sortDescriptors
价值转换器:NSUnarchiveFromData
如果我将相同的设置应用于其他NSArray控制器之一,则会出现错误。 “实体??不是密钥值编码兼容的密钥”??“。
有什么想法吗?
编辑:在错误中,我意识到“......符合密码的'xx'编码。”此键是第一列的排序键,它出现在所有其他NSArray控制器的错误消息中。不知道为什么会这样。我已正确设置排序键,所以为什么要查看我设置的第一个?
答案 0 :(得分:0)
不确定为什么绑定不起作用,但为了解决我的排序问题,我为NSSortDescriptor
方法中的每个NSArrayControllers
创建了一个awakeFromNib
,一切都在排序。
-(void)awakeFromNib{
NSSortDescriptor *nameSort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[nameArrayController setSortDescriptors:[NSArray arrayWithObject:nameSort]];
}