我有一个经典的CoreData应用程序,在NSTableView中使用Binding显示它的数据(全部使用XCode 4.2完成).
工作正常,直到我昨天决定在Attributes Inspector中检查ArrayController的“Auto Rearrange Content”.现在,当我尝试在其上设置过滤谓词时,我得到:
[<_NSFaultingMutableSet 0x102b65950> addObserver:forKeyPath:options:context:] is not supported. Key path: name
请记住,如果没有此选项,它可以完美地工作:谓词很好,控制器正在过滤它的托管内容,而表视图只显示与谓词匹配的实体.
当然,我可以取消启用此“自动重新排列内容”,但它对于在实体更改时维护排序顺序很有用.如果我编辑一个实体,“修改日期”更改,并且由于我的排序顺序是在此日期,我希望TableView自动重新排序它的行.并且它使用此选项,但唉添加了“addObserver不支持”的错误.
_NSFaultingMutableSet来自相关实体中的多对多关系,因此是“Set”.也许“自动重新排列内容”与具有多对多关系的“setFilterPredicate”不兼容?
有人有类似的问题吗? NSArrayController的内部错误?
注意:导致问题的谓词具有形式
name CONTAINS[cd] %@ OR ANY aliases.name CONTAINS[cd] %@
要么
ANY tags.name CONTAINS[cd] %@ OR ANY tags.aliases.name CONTAINS[cd] %@
似乎’ANY’正在引发一些冲突……