Objective c 从CoreData检索值时,实体返回空值

Objective c 从CoreData检索值时,实体返回空值,objective-c,sqlite,core-data,null,entities,Objective C,Sqlite,Core Data,Null,Entities,我有两个实体。它们被命名为SP和代码。我分别有10个和5个属性。我在两个实体上都有相反的关系。我使用firefox插件sqlite管理器将数据输入到模型中。所以我没有写这样的一行 sp.codererelationship=codeObj;或code.sprelationship=spObj;代码中的任何地方。现在在viewcontroller中,我正在检索数据。 self.spArray=[self.managedObjectContext executeFetchRequest:fR err

我有两个实体。它们被命名为SP和代码。我分别有10个和5个属性。我在两个实体上都有相反的关系。我使用firefox插件sqlite管理器将数据输入到模型中。所以我没有写这样的一行 sp.codererelationship=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个日志,其为空。 我的实体设计

服务提供商 -描述 -sPName -sPID 关系 -代码关系


代码 -代号 -科迪德 -代码日期 关系 -关系


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

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

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];

此外,您是否已验证关系是否已正确插入数据库?

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

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];

此外,您是否已验证关系是否已正确插入数据库?

Perchich。谢谢你提供的信息。我添加了代码,但仍然没有看到任何值。另外,如何检查关系是否已正确插入?我仍处于核心数据的学习模式。您应该在应用程序资源包中找到sqlite db文件。您可以使用某些sqlite浏览器(例如SQLItemManager)打开它并检查表的结构和内容。@Michele Percich。我做了那个步骤,我可以在那里做一个内部连接,并看到它可以从两个表中带来数据。我的朋友告诉我,如果我在代码中编写或设置关系,那么只有我能检索到值,否则我不能。显然,我在项目中做了一个不必要的步骤。我可以跳过这一步,在正确的步骤中设置关系。这将带给我所需的信息,因为我以前。再次感谢你,佩奇。谢谢你提供的信息。我添加了代码,但仍然没有看到任何值。另外,如何检查关系是否已正确插入?我仍处于核心数据的学习模式。您应该在应用程序资源包中找到sqlite db文件。您可以使用某些sqlite浏览器(例如SQLItemManager)打开它并检查表的结构和内容。@Michele Percich。我做了那个步骤,我可以在那里做一个内部连接,并看到它可以从两个表中带来数据。我的朋友告诉我,如果我在代码中编写或设置关系,那么只有我能检索到值,否则我不能。显然,我在项目中做了一个不必要的步骤。我可以跳过这一步,在正确的步骤中设置关系。这将带给我所需的信息,因为我以前。再次感谢。