我是核心数据的新手,如果有人可以根据给定的要求提供反馈/提示我,那就太好了。
Entity A
{
property 1;
property 2;
property 3;
}
Entity B
{
property 1;
property 2;
property 3;
}
Entity C
{
EntityB ObjB; // pointing to Entity B
EntityA ObjA; // pointing to Entity A
property 1;
property 2;
property 3;
}
Entity D
{
EntityB ObjB; // pointing to Entity B
EntityA ObjA; // pointing to Entity A
property x;
property y;
property z;
}
新插入的对象需要存储到具有更多属性的实体 C、实体 D 中。
为了隔离插入到主要上下文,使用下面提到的方法
NSEntityDescription *entity = [NSEntityDescription entityForName:@"EntityB" inManagedObjectContext:self.managedObjectContext];
objB = [[EntityB alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
由于我已将 objB 和 objA 存储到 EntityC 中,因此将使用下面的 EntityD 方法。
NSEntityDescription *entity = [NSEntityDescription entityForName:@"EntityC" inManagedObjectContext:self.managedObjectContext];
objC = [[EntityC alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
objC.objB = objC;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"EntityD" inManagedObjectContext:self.managedObjectContext];
objD = [[EntityD alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
objD.objB = objB;
然后最后我会将所有对象保存到主上下文中。
[self.managedObjectContext insertObject:objB];
[self.managedObjectContext insertObject:objC];
[self.managedObjectContext insertObject:objD];
[self.managedObjectContext save:&error];
由于我对核心数据没有太多经验,我想知道他们存储信息的方式是好的,或者在提到的场景中还有另一种存储数据的方法。
感谢您宝贵的时间。