我有两个具有双向关系的托管对象。 它是一个'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'?
答案 0 :(得分:4)
它应该像你描述的那样工作。你确定“段”对象/关系实际存在并包含一个真实对象吗?检查数据模型,该关系不是可选的,并检查您实际存储的代码。
答案 1 :(得分:1)
问题解决了。 这不是我读取数据的方式,而是我如何将它放在CoreData中。 上面发布的代码确实是正确的。响应Jaanus的Thanx。