获取与核心数据的关系

时间:2010-01-25 12:19:26

标签: core-data entity-relationship nsfetchrequest

我有两个具有双向关系的托管对象。 它是一个'segmentWithDetails',它包含一个'segment'对象。

我用

NSEntityDescription *entity = [NSEntityDescription entityForName:@"SegmentWithDetails" 
                                          inManagedObjectContext:connectionDetailsService.connectionDetailsContext];
[fetchRequest setEntity:entity];

获取我的segmentWith详细信息。这没问题。

但是,当我尝试检索包含的段时,我得到了nil。

我试图用

来搞定
Segment *segment = [segmentWithDetails valueForKeyPath:@"segment"];

Segment *segment = segmentWithDetails.segment;

但这不起作用(= nil)。我也尝试修改NSFetchedResultsController。 我添加了以下内容:

[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@"segment"]];
[fetchRequest setIncludesSubentities:YES];

但这两者似乎没有任何区别。 根据我对Apple精细文档的理解,这种关系应该只使用错误。

我在这里缺少什么? 如何从'segmentWithDetails'中找到关系对象'segment'?

2 个答案:

答案 0 :(得分:4)

它应该像你描述的那样工作。你确定“段”对象/关系实际存在并包含一个真实对象吗?检查数据模型,该关系不是可选的,并检查您实际存储的代码。

答案 1 :(得分:1)

问题解决了。 这不是我读取数据的方式,而是我如何将它放在CoreData中。 上面发布的代码确实是正确的。响应Jaanus的Thanx。