2012-07-03 62 views
1

我正在创建一个新的NSManagedObject并将其插入具有并发类型专用队列的上下文(因此它运行在后台线程上)。调用时获取线程错误obtainPermanentIDsForObjects

我省权利之前,我称之为:

[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,问题就会消失。

有什么建议吗?

+0

您是否有任何其他新的托管对象是您获取对象ID的对象的“子项”?如果是这样,你需要将这些对象添加到数组中。这是核心数据中的一个错误。 –

+0

不,我不认为我处理的是儿童和父母对象。 – Snowman

+0

是否有任何其他对象在newObject上创建并设置为属性(核心数据基元除外)? –

回答

1

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

相关问题