0

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

我用

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

获取我的 segmentWith 详细信息。这工作正常。

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

我试着用

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

Segment *segment = segmentWithDetails.segment;

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

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

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

我在这里想念什么?如何从“segmentWithDetails”获取关系对象“segment”?

4

2 回答 2

4

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

于 2010-01-25T16:26:59.963 回答
1

问题解决了。这不是我如何读取数据,而是我如何将其放入 CoreData。上面发布的代码确实是正确的。感谢 Jaanus 的回复。

于 2010-01-27T11:48:05.043 回答