我在核心数据中有两个表,例如表 TA 和表 TB,TA 与 TB 具有一对多的关系。TA 中有一条记录 A1,我希望 TB 中有几条记录(B1,B2,..)映射到 for 循环中的 A1。在第一次迭代中,我查询 db 并获取 A1,调用 addTBObject:B1 并且没有保存上下文。在下一次迭代中,再次查询以获取 A1,但它返回 nil。(这么奇怪...)
如果我在第一次迭代中保存上下文,那么在下一次迭代中再次获得 A1 就可以了。但我不认为这是一种更好的做法,这会导致在一个 for 循环中执行许多保存操作。
有人可以帮忙吗?对此表示赞赏!
代码提取:
NSString* objBId = @"xxx";
for (int i=0; i< [dataArray count]; i++) {
ObjA obj = [dataArray objectAtIndex:i];
NSManagedObject* moObjA = [self getManagedObjAById:obj.objId inContext:context];
if(moObjA)
{
NSManagedObject* moObjB = [self getManagedObjBById:objBId inContext:context];
if (moObjB != nil)
{
[moObjB addAObject:moObjA];
[self saveDB:context]; //if don't save here, moObjB will be nil in the next iteration...
}
}
}