我正在尝试使用存储在Core Data中的数据构建主/详细视图。使问题复杂化的是,显示的值不一定是属性的原始值,但可能需要额外的计算。
主视图是一个表视图,列出给定帐户的实体事务的所有对象(让我们称之为代表帐户)。这需要所代表的帐户是 fromAccount 或 toAccount 的所有交易。
显示的数据是:
简单属性,例如交易日期和消息
属性取决于观点:金额和帐户
从fromAccount
:
(amount * -1)
toAccount
从toAccount
:
amount
fromAccount
这些依赖属性的翻译/解释由表视图的数据源完成。视图知道它代表哪个帐户,因此数据源可以轻松地进行必要的计算。
详细信息视图显示在主视图中选择的单个事务的值。
表视图中的选定对象是NSManagedObject的后代。理想情况下,我会将文本字段/弹出菜单的值绑定到Transaction的属性。由于必要的解释,这是不可能的。
现在,我正在尝试将值绑定到viewController.selectedObjectAmount
和viewController.selectedObjectAccount
等方法,这些方法可以进行计算。然而,这似乎是一个糟糕的解决方案。我要为我想要在详细视图中使用的每个属性添加一个方法,或者我在viewController中混合使用各种方法,并直接从所选对象本身中添加属性。
我最初的想法是使用“TransactionProxy”(NSProxy的后代),它具有我想要显示的所有必需属性的属性/方法。我放弃了,因为我无法开始工作,但我仍然想知道它是否是一个选项。
答案 0 :(得分:0)
只需为详细视图提供类型为Transaction
的属性,并使用该对象中的数据填充视图。这是一种非常常见的模式。