Wae*_*ael 4 core-data objective-c ios8
在将我的应用程序从iOS7迁移到iOS8时,我遇到了解决此问题的真正困难,该应用程序在iOS7上运行良好.
当我想保存时它会崩溃
NSError *error = nil;
if (![managedObjectContext save:&error]) { <---- crashes here
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
Run Code Online (Sandbox Code Playgroud)
我在stackoverflow上只看到了2个类似的问题,但没有一个响应与我的问题有关.
iOS 8 CoreData问题:recordChangeSnapshot:forObjectID :: global ID在录制时可能不是临时的
发布所有代码并不容易.我不知道从哪里开始调试!请帮忙一些.谢谢
pka*_*amb 10
这个调用是[managedObjectContext save:&error]在后台线程上发生的吗?它通常在主线程上调用吗?
建议使用Core Data进行并发编程的模式是线程限制:每个线程必须拥有自己的完全私有的托管对象上下文.
使用Core Data代码时,您可以使用isMainThread以确定是否在后台线程上并在使用Core Data之前切换到主线程:
- (void)yourCoreDataTask {
if (![[NSThread currentThread] isMainThread]) {
dispatch_async(dispatch_get_main_queue(), ^{
[self yourCoreDataTask];
});
return;
}
// Now on the Main Thread. Work with Core Data safely.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2586 次 |
| 最近记录: |