挂起NSManagedObjectContext的保存:

时间:2012-01-27 03:31:59

标签: iphone objective-c ios cocoa-touch core-data

出于某种原因,有时我的应用程序会挂起以下代码:

NSError *error;
if (![self.managedObjectContext save:&error]) {
     NSLog(@"Couldn't save: %@", [error localizedDescription]);
}

有时并不总是挂起。如果我打破所有异常,那么Xcode将在保存调用中中断,但如果我关闭断点,它将永远挂起,不会崩溃或任何事情。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

挂在使用ManagedObjectContext的任何内容上都是死锁的标志。使用NSLocking protocol或为每个帖子和synchronize them创建新的MOC

Apple的另一个有用的文档 - > Concurrency with Core Data

答案 1 :(得分:-3)

您是否尝试将NSError *错误设置为nil?