我正在尝试使用核心数据存储和检索数据。我很好,与双重实体的工作,但目前试图访问一个(中华人民共和国)实体,这是一个两个层次的深度。
目前,我的模型由Fpga实体、会话实体和中华人民共和国实体组成。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 *prc0 = (PRC*)[[[fpgaObj.session allObjects] objectAtIndex:0] prc];
self.p0TextField.text = [NSString stringWithFormat:@"%@", prc0.prc0];我总是返回null,但是所有其他Fpga和会话属性都很好。显然有些地方不对劲..。但不确定什么..。
提前感谢
发布于 2013-11-21 18:40:06
您不创建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;发布于 2013-11-21 18:40:11
在执行session0.prc.prc0 = ...之前,您需要创建PRC实体的实例。您通常会创建和配置此实例,然后将其设置为关系(session0.prc = ...)的内容。目前,您正在尝试将数字设置为不存在的实例。
https://stackoverflow.com/questions/20129242
复制相似问题