【发布时间】:2013-11-21 18:36:25
【问题描述】:
我正在尝试使用核心数据存储和检索数据。我可以使用双实体,但目前正在尝试访问一个深度为两层的(PRC)实体。
目前我的模型由一个 Fpga 实体、一个 Session 实体和一个 PRC 实体组成。 Fpga 实体与 Session 实体具有一对多的关系。 Session 实体与PRC 实体具有一对一的关系。 PRC 实体由 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 数据,例如(数据库中只有一个对象用于演示):
PRC *prc0 = (PRC*)[[[fpgaObj.session allObjects] objectAtIndex:0] prc];
self.p0TextField.text = [NSString stringWithFormat:@"%@", prc0.prc0];
我总是返回 null 但所有其他 Fpga 和 Session 属性都很好。显然出了点问题……但不确定是什么……
提前致谢
【问题讨论】:
标签: ios core-data relationship