我有两个实体。它们被命名为SP和Code。我分别有10个和5个属性。我对这两个实体都有反比关系。我使用 firefox addon sqlite manager 将数据输入到模型中。所以我不写这样的一行 sp.coderelationship = codeObj;或code.sprelationship = spObj;代码中的任何地方。现在在viewcontroller我正在检索数据。 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个日志,它为空。 我的实体设计
-sPDescription -sPName -sPID 的关系 -coderelationship
代码 -代码名称 -codeID -codeDate 的关系 -sprelationship
如果需要更多信息,请与我们联系。感谢..
答案 0 :(得分: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];
另外,您是否已验证关系已正确插入数据库?