2012-06-04 134 views
0

我有一個名爲guestlist的實體,它與名爲guest的實體具有一對多關係。會員列表也與Invite實體有關係。將新對象添加到存儲時會丟失核心數據關係

當我使用包含guest對象的guestlist創建一個Invite對象時。它可以在應用程序內節省罰款和顯示。接下來,我使用同一個來賓創建具有不同標題的新Invite列表對象。這也可以節省罰款和顯示在應用程序內罰款。

問題是,當我退出應用程序並返回時,只有最近的邀請保留了guestlist與guest(s)的關係。來賓列表中的時間戳值存在,但與來賓(s)對象的關係爲空。

下面是我用來設置對象並將其保存到商店中的代碼。

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; 
} 

回答

3

如果賓客名單與賓客有一對多的關係,則賓客只能連接到一個賓客名單。在實踐中,這意味着只有您分配給它的最後一個訪客列表(無論是隱式還是顯式)纔會堅持。

您想要將該關係更改爲多對多關係。

+0

你救了我的命:O –