核心数据在检索记录时的混淆

时间:2013-05-20 20:15:10

标签: ios objective-c core-data

我目前正在构建Core Data应用程序,但我遇到了麻烦。我想这里是模式的一些上下文:

该应用程序是跟踪治疗师与她的客户的会话。因此,模式就这样组织:有一个客户表,客户有会话,会话有活动,活动有指标。在应用程序中,这些指标转换为简单的计数器,计时器和NSSliders。

关键是客户希望能够将以前制作的活动插入新客户的新会话中。所以,我试过做一个简单的提取请求然后转移到NSFetchedResultsController。我一直在讨论由于Core Data是一个对象图,我获得了大量具有相同数据的活动条目。唯一的区别特性是会话是什么(如果你想进一步回到客户端本身)。

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

感谢任何帮助,即使我没有特定的编码错误,也可以根据需要发布代码。

2 个答案:

答案 0 :(得分:1)

我没有看到问题。如果您使用ClientSessionActivityMetric实体对事物进行建模,每个实体与其右边的实体之间存在多对多关系,并且对于一个/与左边的那个相反的关系(按照我列出的实体的顺序),没有什么能阻止你将一个特定的活动添加到另一个会话(另一个客户端),是吗?

也许我误解了这个问题。

答案 1 :(得分:1)

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

我相信您正在寻找的是一种NSPredicate来缩小您的搜索结果。获取特定对象后,您可以使用点表示法轻松地为该对象分配任何关系或属性,然后保存上下文。