2011-09-05 25 views
0

我创建了一个小测试应用程序。它创建了一家新公司和一批x员工。CoreData,多线程和绑定同时

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

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

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

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

但仍有一个问题,我无法修复。每次我用员工创建一个新公司时,并非所有员工都出现在表格视图中。不知何故,他们迷路了,但我无法弄清楚在哪里。

我已上载这里的Xcode项目:http://uploading.com/files/7894m9mc/CoreDataMultiThreading.zip/

我想现在找到一个星期的bug :(也许别人有更多的运气

注:我想尝试用什么应用程序是,尽快为他们创建创建自己的线程许多对象(雇员),这些对象添加到同一个对象(公司)。

(请原谅我糟糕的发音)

+0

您提供的URL上的zip文件已损坏,不会解压缩。 – TechZen

+0

没关系,文件托管服务只是很奇怪,让你等待。 – TechZen

回答

1

问题出现是因为Employee对象的许多company关系在与前台线程合并后设置为零。由于它们没有company关系对象,因此它们不会显示在UI中。

我不知道为什么合并将关系设置为零。它可能与多次合并同时发生或尝试合并无故障的错误对象有关。