1

我正在创建一个新的 NSManagedObject 并将其插入到具有并发类型私有队列的上下文中(因此它在后台线程上运行)。

在我保存之前,我称之为:

[appDelegate.backgroundMOC obtainPermanentIDsForObjects:
       [NSArray arrayWithObject:newObject] error:&error];

然后我保存:

[appDelegate.backgroundMOC save:&err];

但是,我遇到了 EXC_BAD_ACCESS 崩溃。查看堆栈跟踪,我看到:

0 semaphore_wait_trap
7-[NSManagedObjectContentSave:]

我猜有问题的线是semaphore_wait_trap,但我不确定这是怎么引起的。

如果我注释掉该行obtainPermanentIDsForObjects,问题就会消失。

有任何想法吗?

4

1 回答 1

1

由于获取对象 ID 的错误 ( http://openradar.appspot.com/11478919 ),您需要将所有新创建的对象传递到-[NSManagedObjectContext obtainPermanentIDsForObjects:error:].

于 2012-07-05T20:34:42.370 回答