【问题标题】:What is the replacement method for this MagicalRecord deprecated call?这个不推荐使用的 MagicalRecord 调用的替换方法是什么?
【发布时间】:2013-12-30 09:17:25
【问题描述】:

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

[[NSManagedObjectContext MR_contextForCurrentThread] MR_saveErrorHandler:^(NSError *error)

【问题讨论】:

    标签: magicalrecord


    【解决方案1】:

    casademora 是正确的,但我会尽量准确,因为我在转换我的时候遇到了一些问题

        [[NSManagedObjectContext MR_contextForCurrentThread] MR_saveToPersistentStoreWithCompletion:nil];
    

    进入

        [MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext)
    

    您必须小心地在块内更改或创建实体,但这还不够。

    要检索您的实体,您也必须使用带有上下文的选择请求。

    MR_findFirstByAttribute:withValue
    

    还不够,更新不会被保存。你必须改用

    MR_findFirstByAttribute:withValue:InContext:localContext
    

    和创建实体的时候一样

    MR_createEntity
    

    必须改成

    MR_createEntityInContext:localContext
    

    然后它就像一个魅力:)

    【讨论】:

      【解决方案2】:

      有问题的已弃用方法是:

      [NSManagedObjectContext MR_contextForCurrentThread]
      

      不久前我确实写了一点blog post,虽然我承认这是在我的个人博客上,而不是在任何官方文档中。但是,TL;DR,底线是,在 GCD 和队列的世界中,您不能保证队列到线程的 1-1 映射,尽管 GCD 在线程上运行。确保一切顺利进行的方法是使用以下模式:

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

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

      【讨论】:

      • 那么我应该用什么替换 MR_saveErrorHandler: 呢?
      • 以下任何一个:MR_saveOnlySelfAndWait、MR_saveOnlySelfCompletion:、MR_saveToPersistentStoreAndWait、MR_saveToPersistentStoreCompletion:
      • 非常感谢...关于不同的主题,我喜欢阅读 PDF 格式的文档...您对我在 Docs 文件夹中创建当前文件的 PDF 感兴趣吗?可以这么说,我想“向前支付”..:D
      • MR_contextForCurrentThread 已弃用。改用什么?
      • saveWithBlock 没有解释如何从正确的 MOC 中检索实体。 IE 如何从当前线程获取实体?
      猜你喜欢
      • 2019-09-15
      • 2021-11-16
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多