核心数据的主/详细视图

时间:2014-07-13 07:00:45

标签: objective-c core-data

我正在尝试使用存储在Core Data中的数据构建主/详细视图。使问题复杂化的是,显示的值不一定是属性的原始值,但可能需要额外的计算。

核心数据实体

交易

  • 金额(始终为正值)
  • fromAccount :资金来源帐户
  • toAccount :钱的目标帐户

主视图

主视图是一个表视图,列出给定帐户的实体事务的所有对象(让我们称之为代表帐户)。这需要所代表的帐户是 fromAccount toAccount 的所有交易。

显示的数据是:

  • 简单属性,例如交易日期消息

  • 属性取决于观点:金额帐户

    fromAccount

    的角度查看交易
    • 金额:表示扣除金额,显示为(amount * -1)
    • 帐户:显示toAccount

    toAccount

    的角度查看交易
    • 金额:表示添加金额,并显示为正值amount
    • 帐户:显示fromAccount

这些依赖属性的翻译/解释由表视图的数据源完成。视图知道它代表哪个帐户,因此数据源可以轻松地进行必要的计算。

详情视图

详细信息视图显示在主视图中选择的单个事务的值。

表视图中的选定对象是NSManagedObject的后代。理想情况下,我会将文本字段/弹出菜单的值绑定到Transaction的属性。由于必要的解释,这是不可能的。

现在,我正在尝试将值绑定到viewController.selectedObjectAmountviewController.selectedObjectAccount等方法,这些方法可以进行计算。然而,这似乎是一个糟糕的解决方案。我要为我想要在详细视图中使用的每个属性添加一个方法,或者我在viewController中混合使用各种方法,并直接从所选对象本身中添加属性。

我最初的想法是使用“TransactionProxy”(NSProxy的后代),它具有我想要显示的所有必需属性的属性/方法。我放弃了,因为我无法开始工作,但我仍然想知道它是否是一个选项。

1 个答案:

答案 0 :(得分:0)

只需为详细视图提供类型为Transaction的属性,并使用该对象中的数据填充视图。这是一种非常常见的模式。