这个MagicalRecord弃用电话的替代方法是什么?

Spo*_*ude 12 magicalrecord

如何在MagicalRecord中找到替换方法(已弃用)?我看过Google,SO和文档; 似乎什么都不是替代品,当然,文档中没有任何内容可以告诉您什么取代了已弃用的方法.: - {

[[NSManagedObjectContext MR_contextForCurrentThread] MR_saveErrorHandler:^(NSError *error)
Run Code Online (Sandbox Code Playgroud)

cas*_*ora 23

不推荐使用的方法是:

[NSManagedObjectContext MR_contextForCurrentThread]
Run Code Online (Sandbox Code Playgroud)

我刚才写了一篇关于这篇文章的小博文,虽然我承认它是在我的个人博客上,而不是在任何官方文档中.但是,TL; DR,底线是,在GCD和队列的世界中,你不能保证队列到线程的1-1映射,尽管GCD在线程上运行.确保事情顺利进行的方法是使用以下模式:

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
    //make your changes in the localContext
}];
Run Code Online (Sandbox Code Playgroud)

这解决了contextForCurrentThread通过简单地强制执行您应该在线程特定上下文中的不同线程中完成所有工作的规则而出现的细微交叉线程问题.通过每次保存时创建新的上下文,而不是重新使用上下文,您将保证不会跨线程,并且不会在1%的时间内使应用程序崩溃.