基本上我有三个不同的核心数据实体(A
, B
, C
)并A
包含一组B
s 和B
一组C
s。然而,这三个实体彼此完全不同,它们没有共同的方法来访问彼此的孩子或要在视图中显示的值。
我试图在 NSOutlineView 中显示这三个实体。可能还有其他解决方案,但我想出了两个不同的解决方案:
实现 NSOutlineViewDataSource 协议并以不同方式处理每个实体。
将类与类别合并并添加通用(瞬态)方法/属性以供 NSOutlineView 使用。这些方法/属性从模型实体的属性中获取它们的实际值。
我选择了第二个选项,并为子项和显示值添加了 getter。但是,这样一来,Key-Value Observing 不再起作用,模型中的更改也不会反映到视图中。我明白为什么,但我不确定如何以正确的方式解决这个问题。我正在考虑某种方式来通知实际模型值的更改并将它们转发到视图。
是否有任何简单的方法可以转发这些通知,或者我应该考虑其他替代方法吗?
简而言之,我需要在 NSOutlineView 中显示不同类型的实体,并且我不想弄乱模型。