所有那些“NSOrderedSet 是后来添加的,因此不必与其他组件配合得很好”的错误让我抓狂……</p>
我有两个托管对象和它们之间的有序 1:N 关系,它由NSOrderedSet
. 我想使用 a 来管理这种关系NSArrayController
,以便从它提供的功能中获利(选择管理、内容绑定、与视图等的绑定NSTableView
)。
由于NSOrderedSet
不是 的子类NSSet
,因此contentSet
绑定NSArrayController
不适用于该关系。我找到了以下线程并尝试实施那里提到的建议。
第一个建议是使用contentArray
绑定和值转换器将有序集动态转换为数组。此解决方案的问题是每次进行更改时都会重新分配内容,这不是我想要的。
提到的线程中提供的第二个建议是使用contentArray
绑定并将@array
运算符应用于模型键路径。我已经尝试过了,但是在通过NSArrayController
.
contentSet
我发现的另一个选项是使用带有绑定的排序描述符。这将需要使关系无序以使contentSet
绑定工作并引入一个新属性,特别是用于管理订单。这将进一步需要一个自定义的排序机制来实现,它会弄乱模型。老实说,我想避免这种解决方案。
我的问题很清楚:有没有办法使用 来管理有序的核心数据关系NSArrayController
?如果是这样,哪种方法是尽可能减少疼痛的最佳方法?