1

我目前正在构建一个 Core Data 应用程序,但遇到了障碍。我想这里有一些关于模式的上下文:

该应用程序用于跟踪治疗师与客户的会话。所以架构是这样组织的:有一个客户表,客户有会话,会话有活动,活动有指标。在应用程序中,这些指标转换为简单的计数器、计时器和 NSSlider。

关键是客户希望能够将以前制作的活动插入到新客户的新会话中。所以,我试着做一个简单的获取请求,然后转到 NSFetchedResultsController。我一直遇到一个问题,因为 Core Data 是一个对象图,所以我得到了大量具有几乎相同数据的活动条目。唯一的区别属性是会话是什么(如果你想更进一步,客户端本身)。

我不确定这是否是我需要在架构本身中更改的东西,或者我是否可以在 Core Data 中执行某种解决方法。我已经尝试通过使用结果类型 NSDictionaryResultType 对 NSFetchedResultsController 进行不同的获取结果。它完成了我想要的,但我只得到实体的关联属性,而不是任何与之关联的子实体(我需要这些指标,你看)。

感谢您提供任何帮助,如果需要,我可以发布代码,即使我并没有具体的编码错误。

4

2 回答 2

1

只需使用一个简单的 NSFetchRequest 并将谓词设置为您正在寻找的内容。如果您得到太多结果,您可以设置获取限制,但您的问题听起来不像是 IMO 的问题。

我相信你正在寻找的是一个 NSPredicate 来缩小你的结果。获取特定对象后,您可以使用点符号轻松地将任何关系或属性分配给该对象,然后保存上下文。

于 2013-05-20T20:59:05.473 回答
1

我没有看到问题。如果您使用ClientSessionActivityMetric实体对事物进行建模,每个实体与其右侧的一个具有一对多关系,与其左侧的一个具有一对一/一对多的反向关系(按我列出实体的顺序) ,没有什么可以阻止您将特定活动添加到(另一个客户端的)另一个会话中,是吗?

也许我误解了这个问题。

于 2013-05-20T20:44:25.853 回答