在单个 NSTableView (Core-Data) 中显示来自多个实体的数据

Posted

技术标签:

【中文标题】在单个 NSTableView (Core-Data) 中显示来自多个实体的数据【英文标题】:Displaying data from multiple entities in a single NSTableView (Core-Data) 【发布时间】:2009-11-20 23:03:34 【问题描述】:

我有一个名为 Pupil 的实体和一个名为 Loan 的实体。 Pupil 实体具有以下属性:firstName、lastName、address、postCode、telephoneNumber。 Loan 实体具有属性:loanID,关系:tutorialID,即与实体 Pupil 的关系。

我希望在表格中显示loanID,以及与loanID 相关的学生(如果有)。 例如:

LoanID | firstName | lastName | address     | postCode | telephoneNumber
   1   |    bob    |  smith   | 98 Any Road |  N1 1QW  | 0123456789

我该怎么做呢?我目前正在为我的其他表使用绑定。

谢谢!

【问题讨论】:

在表格中包含更多与地址相关的字段可能会有所帮助,因为学生可能会搬到另一个城市、州或国家。或者,换一种方式,让用户输入所有这些内容和邮政编码作为地址的一部分。 是的,我通常会这样做,但是对于这个特定的程序,所有用户都必须在某个自治市镇内才能成为会员,一旦他们离开,他们就不能再成为会员。不过感谢您的提示! 【参考方案1】:

假设您已为 pupilID 设置反向关系(即从瞳孔到贷款的关系),您可以执行此操作。如果您将该关系称为loan,并将NSArrayControllerPupilsController 绑定到Pupils 集合,那么您的第一个表可以绑定到PupilsController.arrangedObjects.loan.loadID,而您的其他列可以按照您的预期绑定。

在纯粹的风格方面,pupilID 属性更适合命名为pupil。 Core Data 不再是 ORM,您也不再处于 SQL JOIN 领域。将属性命名为它们是什么,而不是 Core Data 如何在后台实现它们。

【讨论】:

感谢您的帮助!我也会改变关系名称!

以上是关于在单个 NSTableView (Core-Data) 中显示来自多个实体的数据的主要内容,如果未能解决你的问题,请参考以下文章

NSTableView,NSArrayController 和仅在按键后重新加载?

NSTableView 委托不工作/不填充单元格

在 NSTableView 中滚动

在 NSTableView 中实现拖放

NSTableView 在特定条件下不重绘

从代码中显示两个项目 NSTableView 的最简单方法?