我有一个名为guestlist的实体,它与一个名为guest的实体有1对多的关系。 Guestlist也与Invite实体有关系。
当我使用包含guest对象的guestlist列表创建Invite对象时。它可以很好地保存应用程序中的精细和显示。接下来,我创建另一个具有不同标题的邀请,一个新的访客列表对象,具有相同的访客。这也可以在应用程序中保存精美和显示。
问题在于,当我退出应用程序并重新登录时,只有最近的Invite会保留guestlist与guest虚拟机的关系。访客列表上的时间戳值存在,但与访客对象的关系为空。
以下是我用来设置对象并将其保存到商店中的代码。
Invite *invite = (Invite *)[NSEntityDescription insertNewObjectForEntityForName:@"Invite"
inManagedObjectContext:anotherContext];
[invite setTitle:[inviteDetailsModel descriptionOfInvite]];
GuestList *guestlist = [NSEntityDescription insertNewObjectForEntityForName:@"GuestList"
inManagedObjectContext:anotherContext];
[guestlist setGuestlist_to_invite:invite];
[guestlist setDateInvited:[NSDate date]];
for (Invitee *invitee in [inviteDetailsModel peopleInvited]) {
Guest *guest = [NSEntityDescription insertNewObjectForEntityForName:@"Guest"
inManagedObjectContext:anotherContext];
[guest setFirstName:invitee.firstName];
[guest setLastName:invitee.lastName];
[guest setABookID:invitee.guestID];
[guestlist addGuestObject:guest];
}
}
[invite setGuestlist:guestlist];
NSError *error = nil;
if(![anotherContext save:&error]) {
NSLog(@"Couldnt save our invite data %@",error);
return nil;
}
答案 0 :(得分:3)
如果访客列表与访客列表具有一对多的关系,则访客只能连接到一个访客列表。在实践中,这意味着只有您分配给它的最后一个访客列表(无论是隐式还是显式)都会坚持。
您希望将该关系更改为多对多。