gpt4 book ai didi

objective-c - 如何将 NSTableView 绑定(bind)到多个核心数据实体类型

转载 作者:行者123 更新时间:2023-12-03 16:44:02 25 4
gpt4 key购买 nike

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

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

我考虑了两种不同的方法,但在尝试实现其中一种方法时,我在概念层面和技术层面都陷入了困境。第一种方法是创建一个抽象实体来包含所有公共(public)字段,然后为该抽象实体的每个日志条目类型(膳食、药物、背景等)创建实体。我已经对这一切进行了建模,但无法完全弄清楚如何将这些项目绑定(bind)到数组 Controller 以使它们显示在单个 TableView 中。

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

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

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

预先感谢您的任何建议。

最佳答案

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

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

准确设置模型后,创建 UI 通常很容易。

关于objective-c - 如何将 NSTableView 绑定(bind)到多个核心数据实体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6435280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com