【问题标题】:restrict delete of a referenced managedobject限制删除引用的托管对象
【发布时间】:2011-05-01 17:32:01
【问题描述】:

我有一个简单的核心数据模型:

实体团队(名称、徽标) Entity Sport(名称,团队到->许多团队)

因此,一项运动可以有多个团队

我首先创建团队,然后添加或编辑一项运动并添加团队。 如果我删除团队,我的应用程序开始崩溃。 我相信是因为它正在寻找已删除的引用。

那么,我如何通过 Core Data 进行限制,而不是从另一个实体的关系中删除用作引用的实体。

我不想将关系设置为零。而且我不想先从 Sport 中删除 Team,然后再单独删除它。我只是想让它通知我不能删除它。即我正在寻找一个内置的检查器。

【问题讨论】:

    标签: iphone core-data entity cascading-deletes


    【解决方案1】:

    如果您还没有阅读 Core Data 的“关系删除规则”,则可能需要阅读。并且您要确保您的团队 运动关系是双向的。

    或者,您可能希望实现包装器方法,而不是直接调用生成的 removeXxxObject 和 removeXxxs 方法,以便在调用“remove”方法之前进行必要的检查。

    【讨论】:

    • 为什么双向很重要?
    • 我发现单向关系的效果并不好,但在一种情况下,这正是我所需要的——所以这就是我所拥有的,这很好。我认为当关系是双向的时,Core Data 在维护模型完整性方面做得更好。它可能归结为在删除期间简单地使用删除规则(甚至是默认规则)。如果有机会,请查看 Marcus Zarra 的核心数据书;第 13 页解决了这个问题。
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多