【问题标题】:How to bind an NSTableView to multiple core data entity types如何将 NSTableView 绑定到多个核心数据实体类型
【发布时间】:2011-09-20 02:05:36
【问题描述】:

我正在编写一个应用程序来帮助糖尿病患者管理他们的病情。跟踪的信息包括血糖结果、营养、锻炼和药物信息。 在类似的应用程序中,这些条目都显示在单个表视图中,即使每种类型的条目具有不同的字段。许多糖尿病患者在日志中手动跟踪这些数据,我希望保持这种模式。

每个条目都有一些通用信息(时间戳、类别和注释)以及特定于每个条目类型的信息。例如,膳食条目将包含详细的营养信息(碳水化合物计数、纤维、脂肪等),药物条目将指示哪种药物和剂量等。

我考虑过两种不同的方法,但在尝试实施其中任何一种方法时,我都陷入了概念层面和技术层面。第一种方法是创建一个包含所有公共字段的抽象实体,然后为抽象实体的父级的每个日志条目类型(膳食、药物、bg 等)创建实体。我已经对这一切进行了建模,但无法完全弄清楚如何将这些项目绑定到数组控制器以让它们显示在单个表视图中。

第二种方法是拥有一个包含公共字段的实体,然后将特定条目类型建模为与公共记录有关系的单独实体(有点像装饰器模式)。这更容易为(至少对于公共字段实体)构建 UI,但是当我想要绑定特定的数据实体时遇到了同样的问题。

当然,最简单的方法是将每个不同条目类型的所有字段都放入一个实体中,但这违背了我的所有感受。当我将东西绑定到表格视图时,似乎我仍然会遇到类似的问题。

我的最终目标是为用户提供一个界面,在统一的界面中按时间顺序显示每个条目,而不必保留每个条目类型的单独列表。我可以在需要的地方添加代码,但我想尽可能多地使用绑定。

提前感谢您的任何建议。

【问题讨论】:

    标签: objective-c xcode cocoa core-data


    【解决方案1】:

    不要陷入实体继承的困境。您不应该像使用类一样使用它来保存重复的属性。它的主要用途是允许不同的实体处于相同的关系中。此外,实体继承和类继承不必重叠。您可以拥有没有实体继承层次结构的类继承层次结构。

    我不确定我是否完全理解您真正需要什么,但这里有一些通用建议:您不应该根据 UI 的需要创建数据模型。数据模型实际上是您的应用程序处理的真实世界对象、事件或条件的模拟。您应该首先创建数据模型以准确模拟数据。理想情况下,您应该创建一个可以与任何 UI 一起使用的数据模型,例如命令行、GUI、网页等。

    一旦您的模型设置准确,然后掀起 UI 通常很容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多