同时使用 CoreData、多线程和绑定
Posted
技术标签:
【中文标题】同时使用 CoreData、多线程和绑定【英文标题】:CoreData, Multi Threading and Bindings at the same time 【发布时间】:2011-09-05 10:36:25 【问题描述】:我创建了一个小型测试应用程序。它创建了一家新公司和若干 x 员工。
员工是在他们自己的线程中创建的,一旦完成,他们就会被添加到公司中。
因为不允许线程之间共享托管对象,所以我使用公司的对象id。
为了不同时读/写同一个托管对象上下文,我为每个线程创建了一个临时上下文。我使用 - (void)mergeChanges:(NSNotification *)Notifikation 并合并 man 上下文和线程上下文之间的更改。
我使用两个应用控制器和绑定在两个表格视图中显示公司及其员工。
但仍有一个我无法修复的错误。每次我创建一个有员工的新公司时,并不是所有员工都出现在表格视图中。不知怎的,他们迷路了,但我不知道在哪里。
我已经在这里上传了 Xcode 项目:http://uploading.com/files/7894m9mc/CoreDataMultiThreading.zip/
我现在正在努力寻找一个星期的错误:(也许其他人有更多的运气。
注意:我想用该应用程序尝试在他们自己的线程(员工)中创建许多对象,并在创建后立即将这些对象添加到同一个对象(公司)中。
(请原谅我发音不好)
【问题讨论】:
您提供的 url 中的 zip 文件已损坏,无法解压。 没关系,文件托管服务很奇怪,让你等待。 【参考方案1】:出现问题是因为许多Employee
对象在与前台线程合并后将其company
关系设置为nil。由于它们没有 company
关系对象,因此它们不会出现在 UI 中。
我不确定为什么合并会将关系设置为零。它可能与同时发生多个合并或尝试合并无故障的故障对象有关。
【讨论】:
以上是关于同时使用 CoreData、多线程和绑定的主要内容,如果未能解决你的问题,请参考以下文章