我有兩個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
代碼會有幫助。可能與您如何實例化本地屬性有關? – andrewbuilder 2014-10-29 15:42:19