我有两个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
})
)}
请注意&#34;实例&#34;认为它指向一个内存地址为0x7ea0af20的项目,但当我实际问它的值时,它会返回一个内存地址为0x7ea0aee0的项目。核心数据认为这两个对象都存在于x-coredata:/// Item / tC5D79701-0A02-4976-B8B2-DF7DDC36442C5
答案 0 :(得分:0)
问题必须在别处。您必须显示相应的代码。
请注意,0x7ea0af20
是托管对象ID,而不是Item
对象的地址。 Item
对象的地址只出现一次并且是0x7ea0aee0
,而在关系日志中也提到了ID。
同样,listInstance
标识为0x7edf55f0
,地址为0x7edec030
。