菜鸟教程小白 发表于 2022-12-11 22:07:26

ios - 跨上下文传递 ManagedObject ID


                                            <p><p>场景:</p>

<p>我正在处理 2 个 ViewController ,每个 Controller 都有自己的上下文(相同的线程)。我正在尝试通过委托(delegate)方法从 MOC2 -> MOC1 传递 managedObject 的 objectID。好的,做到了,它<strong><em>似乎</em></strong>传递了 ObjectID。</p>

<p>问题出在这里...从 MOC1(委托(delegate))我通过 <code></code> 获得一个指向新对象的指针。我在找到的对象上运行 NSLog,日志描述了它,似乎找到了。现在,当我尝试在更新后的提取结果 Controller 中找到它时,即使它在 TableView 中显示使用相同结果 Controller 的对象,也找不到它。</p>

<p>这里是日志语句...<br/>
对象通过 objectWithID: <code><Account: 0x6b11f90> (entity: Account; id: 0x6db44b0 <x-coredata:///Account/t5F84827D-E710-4331-A462-FCA1A0D335102> ; data: <fault>)</code></p>

<p>结果 Controller 对象:<code><Account:0x6b1fc50>(实体:Account;id:0x6b50250 <x-coredata://84B6642A-9C80-451F-BED4-52952EDFC43C/Account/p9>;数据:<fault >)</code></p>

<p>好像一个是permanentID,另一个是temporaryID,还有完全不同的内存地址。</p>

<p>关于我做错了什么的任何线索?</p>

<p>以下是流程:</p>

<p> <img src="/image/ONODT.png" alt="enter image description here"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>每个托管对象上下文都应注册为来自其他上下文的“已保存”通知 (NSManagedObjextContextDidSaveNotification) 的观察者,以便在使用 <code>mergeChangesFromContextDidSaveNotification 保存时合并来自其他上下文的更改:
</code>.</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 跨上下文传递 ManagedObject ID,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/9725837/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/9725837/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 跨上下文传递 ManagedObject ID