ゲストと呼ばれるエンティティと 1 対多の関係を持つゲストリストと呼ばれるエンティティがあります。Guestlist には、Invite エンティティとの関係もあります。
ゲスト オブジェクトを含むゲストリストを使用して Invite オブジェクトを作成するとき。それはうまく保存され、アプリ内でうまく表示されます。次に、別のタイトルで別の招待状を作成し、同じゲストで新しいゲスト リスト オブジェクトを作成します。これもうまく保存され、アプリ内でうまく表示されます。
問題は、アプリを終了して戻ってくると、最新の招待のみがゲストリストとゲストの関係を保持することです。ゲスト リストのタイムスタンプ値は存在しますが、ゲスト オブジェクトとの関係は空です。
オブジェクトを設定してストアに保存するために使用するコードを次に示します。
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;
}