Multithreading CoreData,同时支持多线程和绑定

Multithreading CoreData,同时支持多线程和绑定,multithreading,cocoa,core-data,cocoa-bindings,Multithreading,Cocoa,Core Data,Cocoa Bindings,我已经创建了一个小的测试应用程序。它创建了一家新公司和一批x员工 员工是在他们自己的线程中创建的,一旦创建完成,他们将被添加到公司中 因为不允许在线程之间共享托管对象,所以我使用公司的对象id 为了避免同时读/写同一托管对象上下文,我为每个线程创建了一个临时上下文。我使用-(void)mergeChanges:(NSNotification*)Notifikation并合并man上下文和线程上下文之间的更改 我使用两个应用程序控制器和绑定在两个表视图中显示公司及其员工 但仍然有一个bug我无法修

我已经创建了一个小的测试应用程序。它创建了一家新公司和一批x员工

员工是在他们自己的线程中创建的,一旦创建完成,他们将被添加到公司中

因为不允许在线程之间共享托管对象,所以我使用公司的对象id

为了避免同时读/写同一托管对象上下文,我为每个线程创建了一个临时上下文。我使用-(void)mergeChanges:(NSNotification*)Notifikation并合并man上下文和线程上下文之间的更改

我使用两个应用程序控制器和绑定在两个表视图中显示公司及其员工

但仍然有一个bug我无法修复。每次我与员工一起创建新公司时,并非所有员工都出现在表视图中。不知怎的,他们迷路了,但我不知道在哪里

我已经在这里上传了Xcode项目:

我正在努力寻找一个星期的错误:(也许其他人有更多的运气

注意:我想用该应用程序尝试的是在他们自己的线程(员工)中创建多个对象,并在创建后立即将这些对象添加到同一个对象(公司)中


(请原谅我的发音不好)

问题的产生是因为许多
员工
对象在与前台线程合并后将其
公司
关系设置为零。由于它们没有
公司
关系对象,因此它们不会显示在UI中


我不知道为什么合并会将关系设置为nil。这可能与同时发生多个合并有关,或者与尝试合并未发生故障的对象有关。

您提供的url处的zip文件已损坏,无法解压缩。没关系,文件托管服务很奇怪,让您等待。