gpt4 book ai didi

cocoa - 将表示一对多关系的 NSSet 绑定(bind)到 NSArrayController 的选择

转载 作者:行者123 更新时间:2023-12-03 17:15:19 24 4
gpt4 key购买 nike

这是场景。有两个CoreData模型对象A和B,它们之间的关系是A有多个B,由属性setOfBs表示。我想显示两张表,一张列出所有 A(表 1),另一张列出所有 B(表 2)。当用户选择表 1 中的项目时,表 2 中的选择会发生变化,以反射(reflect)表 1 中所选 A 的 setOfBs 值。表的内容不会改变,只有选择发生变化。如果表 1 中的选择发生变化,它会更改 setOfBs 以反射(reflect)这一点。

这可以使用绑定(bind)来完成吗?或者是否需要自定义逻辑?

最佳答案

我相信您必须编写额外的逻辑才能使这种方法发挥作用。原因如下: NSArrayController 的选择绑定(bind)(以及绑定(bind)到它们的所有 UI 对象)基于选择索引,但是当您拥有 A 类型的对象时,它会提供一组 B 对象。。假设您有一个用于 As 的数组 Controller 和一个用于 Bs 的数组 Controller ,您需要一种方法来从这些对象获取它们在 B 数组中的索引,以便设置B 的数组 Controller 的选择。这不是很难编写的代码,但我不相信您能够单独使用绑定(bind)来完成此操作。

也就是说,正如您在评论中推测的那样,这似乎不是编辑这种关系的好方法。在常见情况下,TableView 选择是UI 状态,而不是模型 状态。如果您构建一个像您所描述的那样的 UI,UI 状态和模型状态就会变成同一件事。我并不是说这是不可能的,或者本质上是不好的,但这并不是做这类事情的真正“标准”方式。一种常见的模式如下所示:

To-many editing UI example

即使是这样的方法也需要额外的逻辑,因为似乎没有一种方法(开箱即用)可以在不编写代码的情况下绑定(bind)到“不在所选 A 的 setOfBs 中的所有 B”。同样,编写代码并不困难,但我不清楚这是否可以单独使用绑定(bind)来完成。我可能是错的,但这就是我对情况的解读。

关于cocoa - 将表示一对多关系的 NSSet 绑定(bind)到 NSArrayController 的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com