2014-10-28 26 views
0

我有兩個NSManagedObjects,ListInstance和Item,而ListInstance與Item有一對多的關係。當我問一個ListInstance的實例作爲它的itemInstances時,它告訴我它會在一個內存地址給我一個Item,但是它會給我一個Item在不同的內存地址。這會給我帶來問題,因爲當我更新item.listInstance的值時,它不會指向原始的ListInstance。因此我的原始ListInstance永遠不會更新。核心數據關係不返回預期實例

下LLDB日誌顯示了不如意的事情:

(lldb) po instance.itemInstances 
Relationship 'itemInstances' on managed object (0x7edec030) <ListInstance: 0x7edec030> (entity: ListInstance; id: 0x7edf55f0 <x-coredata:///ListInstance/tC5D79701-0A02-4976-B8B2-DF7DDC36442C4> ; data: { 
    // properties omitted 
    itemInstances =  (
     "0x7ea0af20 <x-coredata:///Item/tC5D79701-0A02-4976-B8B2-DF7DDC36442C5>" 
    ); 
    // properties omitted 
}) with objects {(
    <Item: 0x7ea0aee0> (entity: Item; id: 0x7ea0af20 <x-coredata:///Item/tC5D79701-0A02-4976-B8B2-DF7DDC36442C5> ; data: { 
    // properties omitted 
    listInstance = "0x7edf55f0 <x-coredata:///ListInstance/tC5D79701-0A02-4976-B8B2-DF7DDC36442C4>"; 
    listInstanceId = <ecc075981a324305b0aa9207baeb1aeb>; 
    // properties omitted 
}) 
)} 

注意,「實例」認爲它指向內存地址0x7ea0af20項目,但是當我真正問它的價值,它返回一個內存地址爲0x7ea0aee0的項目。核心數據認爲這兩個對象都存在於x-coredata:/// Item/tC5D79701-0A02-4976-B8B2-DF7DDC36442C5

+0

代碼會有幫助。可能與您如何實例化本地屬性有關? – andrewbuilder 2014-10-29 15:42:19

回答

0

這個問題必須存在於別處。你將不得不顯示相應的代碼。

請注意,0x7ea0af20是託管對象ID,而不是Item對象的地址。 Item對象的地址只出現一次,並且是0x7ea0aee0,同時在關係的日誌中也提到了ID。

類似地,listInstance具有ID 0x7edf55f0和地址0x7edec030