在我的核心数据模型中,我有这样的关系(见图)
现在
Location *locObj = [NSEntityDescription insertNewObjectForEntityForName:@"Location"
inManagedObjectContext [self managedObjectContext]];
Room *roomObj = [NSEntityDescription insertNewObjectForEntityForName:@"Room"
inManagedObjectContext:[self managedObjectContext]];
我已经声明了这两个实体。
问题: -
由于我已声明房间和位置的对象,首先我需要填写 位置数据,然后我需要填写房间和数据 然后我需要在定位方法中添加空间?这是正确的吗?
如果我有大数据怎么办?我每次都需要添加对象,还是有任何我们可以连接的自定义支持类?
答案 0 :(得分:1)
答案
此处的顺序并不重要,但引用其他实体对象。你可以使用代码
[locObj addWithRoomObject:roomObj];
roomObj.withLocation = locObj;
没有这样的自定义支持类。您可以在核心数据中使用自动生成的访问器,它将自动处理。你可以调用函数:
[locObj addWithRoomObject:roomObj];
<强>更新强>
添加更多房间:
Location *locObj = [NSEntityDescription insertNewObjectForEntityForName:@"Location"
inManagedObjectContext [self managedObjectContext]];
locObj.locationName = LOCATION_NAME;
Room *room1 = [NSEntityDescription insertNewObjectForEntityForName:@"Room"
inManagedObjectContext:[self managedObjectContext]];
// Fill room1 details
...
room1.withLocation = locObj;
[locObj addWithRoomObject:room1];
Room *room2 = [NSEntityDescription insertNewObjectForEntityForName:@"Room"
inManagedObjectContext:[self managedObjectContext]];
// Fill room2 details
...
room2.withLocation = locObj;
[locObj addWithRoomObject:room2];
// so on..