1

我有两个实体。它们被命名为 SP 和代码。我分别有 10 和 5 个属性。我对这两个实体都有反向关系。我使用firefox 插件 sqlite manager将数据输入到模型中。所以我没有写这样的一行 sp.coderelationship = codeObj; 或 code.sprelationship = spObj; 代码中的任何位置。现在在视图控制器中,我正在检索数据。self.spArray = [self.managedObjectContext executeFetchRequest:fR error:&error];

for(SP *spObj in self.spArray)
{
    NSLog(@"description is %@",spObj.sPDescription);
    Code *codObj = spObj.coderelationship;
    NSLog(@"it has value %@",codObj);
    NSLog(@" unique name is %@",codObj.uniqueCodeName);
}

输出是正确的描述。它打印一个值“xyz”。但对于最后 2 个日志,它的值为空。我的实体设计

SP

-sPDescription -sPName -sPID 关系 -coderelationship


代码 -codeName -codeID -codeDate 关系 -sprelationship

如果需要更多信息,请告诉我。谢谢..

4

1 回答 1

1

在执行获取请求之前添加以下代码:

NSString *relationshipKeyPath = @"coderelationship"; // Set this to the name of the relationship on "SP" that points to the "Code" objects;
NSArray *keyPaths = [NSArray arrayWithObject:relationshipKeyPath];
[fR setRelationshipKeyPathsForPrefetching:keyPaths];

另外,您是否验证了关系已正确插入到数据库中?

于 2012-10-27T08:56:38.493 回答