Ios 具有多重关系的核心数据

Ios 具有多重关系的核心数据,ios,core-data,relationship,Ios,Core Data,Relationship,我正在尝试使用核心数据存储和检索数据。我对双重实体的工作还行,但目前正试图访问一个(PRC)实体,这是一个两层的深度 目前,我的模型由一个Fpga实体、一个会话实体和一个PRC实体组成。Fpga实体与会话实体具有一对多关系。会话实体与中国实体之间存在一对一关系。中国实体由两个属性prc0和prc1组成 我目前正在从以下位置填充模型: Fpga *newEntry = [NSEntityDescription insertNewObjectForEntityForName:@"Fpga" inMa

我正在尝试使用核心数据存储和检索数据。我对双重实体的工作还行,但目前正试图访问一个(PRC)实体,这是一个两层的深度

目前,我的模型由一个Fpga实体、一个会话实体和一个PRC实体组成。Fpga实体与会话实体具有一对多关系。会话实体与中国实体之间存在一对一关系。中国实体由两个属性prc0和prc1组成

我目前正在从以下位置填充模型:

Fpga *newEntry = [NSEntityDescription insertNewObjectForEntityForName:@"Fpga" inManagedObjectContext:self.managedObjectContext];

newEntry.name = self.fpgaTextField.text;

Session *session0 = [NSEntityDescription insertNewObjectForEntityForName:@"Session" inManagedObjectContext:self.managedObjectContext];
session0.type = self.s0TextField.text;

//--------
session0.prc.prc0 = [NSNumber numberWithInt:99];
session0.prc.prc1 = [NSNumber numberWithInt:113];
//--------

Session *session1 = [NSEntityDescription insertNewObjectForEntityForName:@"Session" inManagedObjectContext:self.managedObjectContext];
session1.type = self.s1TextField.text;

//------
session1.prc.prc0 = [NSNumber numberWithInt:[ self.p0TextField.text intValue]];;
session1.prc.prc1 = [NSNumber numberWithInt:[ self.p1TextField.text intValue]];;
//------

newEntry.session = [NSSet setWithObjects:session0, session1, nil];
并尝试检索PRC数据,如(演示数据库中只有一个对象):

我总是返回null,但所有其他Fpga和会话属性都可以。显然有些事情不对。。。但我不确定


提前感谢

您没有创建
PRC
对象,因此
session0.PRC
session1.PRC
nil

例如:

PRC *prc = [NSEntityDescription insertNewObjectForEntityForName:@"PRC" inManagedObjectContext:self.managedObjectContext];
prc.prc0 = [NSNumber numberWithInt:99];
prc.prc1 = [NSNumber numberWithInt:113];
session0.prc = prc;

在执行
session0.prc.prc0=…
之前,需要创建
prc
实体的实例。您通常会创建和配置此实例,然后将其设置为关系的内容(
session0.prc=…
)。目前,您正试图将这些数字设置为一个不存在的实例。

谢谢,现在很明显:)
PRC *prc = [NSEntityDescription insertNewObjectForEntityForName:@"PRC" inManagedObjectContext:self.managedObjectContext];
prc.prc0 = [NSNumber numberWithInt:99];
prc.prc1 = [NSNumber numberWithInt:113];
session0.prc = prc;