【问题标题】:Magical Record persistance issue神奇记录持久性问题
【发布时间】:2012-06-27 13:54:39
【问题描述】:

我有以下问题:

首先...我将 MagicalRecord 用于整个 CoreData 的事情

  • 我有两个实体:A 和 B
  • 他们之间有关系
  • 我创建了一个实体 A 的实例
  • 我创建了几个实例 ob Entity B 并设置了关系
  • 我不调用 [[NSManagedObjectContext defaultContext] save];
    • 没关系
    • 关系没问题...我可以使用findByAttribute方法检查它
  • 如果我调用此保存,则关系将被破坏...
    • 使用 findByAttribute 的相同检查不再找到结果

我完全不知道我做错了什么,或者它是否是 CoreData / MagicalRecord 中的错误...

我制作了一个示例项目来显示问题。 https://github.com/bliblablo/MagicalRecordsProblem

您可以按照以下步骤查看问题:

  • 点击“创建”
  • 点击“添加”
  • 点击“检查”
  • 查看日志输出以了解结果
  • 点击“保存”
  • 再次点击“检查”,在日志中查看问题:)

非常感谢任何帮助! 非常感谢!

【问题讨论】:

标签: ios cocoa core-data magicalrecord


【解决方案1】:

听起来我遇到的问题是临时 ObjectID 没有在默认上下文中刷新。

有关详细信息,请参阅我在 NSPredicate not executed 上的回答。

如果您尚未对其进行整理,请尝试在各个点检查 NSManagedObject 实例的 ObjectID。尤其是如果您(或 Magical Record)将该对象用作 NSPredicate 的一部分来进行后续提取。

【讨论】:

  • 谢谢 Otto...我通过使用从数据来源的 Web 服务获得的唯一 ID 解决了我的问题...所以而不是调用“获取父项所在的所有内容”对象”,我现在使用“获取 parent.uniqueID 是此对象 uniquID 的所有内容”。这对我有用!不过谢谢你的解释!真的很感激!
  • 我猜,这与其说是真正的解决方案,不如说是一种解决方法。真正困扰我的是,如果您在获取数据之前执行“重置”,即使使用“获取父对象是该对象的所有内容”也将起作用。因此,绝对是核心数据(或 MagicalRecord)错误。我很想尝试彻底消灭这个帮手,并以老式的方式玩得开心。
  • @FabianoFrancesconi 我敢肯定这不是一张神奇的唱片,但是。我有理由确定它实际上是 Core Data 中的一个错误。我可能仍然误解了我应该做什么(也许是听通知?)但这已经足够好了。 :)
  • 只有我和你有这种烦恼是不是很奇怪?我的意思是,这是一个相当华丽的错误。我认为我们在这里陷入了某种不当行为。我很担心,因为该应用程序现在似乎可以工作,但它可能会在将来的晚些时候突然停止,我们将不得不回去重新考虑我们所做的事情。
  • 我们至少有 3 个人。 :) 我有点担心,但我第一次调试它,我可以再做一次。我打算在发货前确保我在最新的 Magical Record 上,以防万一。
【解决方案2】:

我认为这不是 MR 错误。这是来自核心数据的错误。看到这个帖子。 http://wbyoung.tumblr.com/post/27851725562/core-data-growing-pains

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多