Luk*_*nek 4 cocoa core-data nsarraycontroller cocoa-bindings nsorderedset
所有那些"NSOrderedSet后来被添加,因此不必与其他组件一起玩"错误让我发疯...
我有两个托管对象和它们之间有序的1:N关系,它由一个实例(或更精确的子类)支持NSOrderedSet.我想使用a来管理这种关系NSArrayController,以便从它提供的功能中获益(选择管理,内容绑定,视图绑定等NSTableView).
由于NSOrderedSet不是子类NSSet,contentSet绑定NSArrayController不适用于该关系.我发现了以下主题并试图实现那里提到的建议.
第一个建议是使用contentArray绑定和值转换器将有序集转换为数组.这个解决方案的问题是每次进行更改时重新分配内容,这不是我想要的.
在提到的线程中提供的第二个建议是使用contentArray绑定并将@array操作符应用于模型密钥路径.我已经尝试过,但是当通过添加/删除对象时根本没有触及底层关系NSArrayController.
我发现的另一个选项是使用带contentSet绑定的排序描述符.这将需要使关系无序,以便使contentSet绑定工作并引入特别用于管理订单的新属性.这还需要一个自定义排序机制来实现,它会搞砸模型.老实说,我想避免这个解决方案.
我的问题很清楚:有没有办法管理有序的核心数据关系NSArrayController?如果是这样,哪种方法尽可能少引起疼痛?
Chr*_*nle 11
NSArrayController没有支持有序关系,这确实令人非常难过.作为绑定技术的敏锐观察者,我发现苹果似乎没有说什么就"放弃"了它.Apple引入的关于绑定的最后一个值得注意的变化是NSTreeController错误修复.那是我相信的10.6/10.7.苹果似乎不想再接触绑定技术了.我不知道为什么因为绑定有时真的很棒.它们可以是"90%解决方案".在原型设计期间,这很好.我正在使用有意义的绑定,并且具有有序关系支持的NSArrayController将是一件好事.
已经提到的大多数解决方案都不是真正的解决方案.但这取决于.这是需要考虑的事情:
| 归档时间: |
|
| 查看次数: |
1657 次 |
| 最近记录: |