【问题标题】:Custom setter for Core Data relationship to force inverse, reciprocal relationshipCore Data 关系的自定义设置器以强制反向互惠关系
【发布时间】:2011-04-26 19:29:26
【问题描述】:

我想为一个NSManagedObject核心数据一对多关系(Object.related)创建一个自定义setter,这样当对象A添加到B.related时,B会自动添加到A.related中,如果A 从 B.related 中删除,B 自动从 A.related 中删除。我之前已经能够为基本属性(例如 NSString 和 NSNumber 属性)创建自定义设置器,但这让我有些头疼。当我的函数-(void)setRelated:(NSSet*)newSet 被调用时,似乎Self.related 属性已经用newSet 列表设置了!这里的最佳做法是什么?我还研究过使用 didChangeValueForKey:(NSString *)inKey withSetMutation:(NSKeyValueSetMutationKind)inMutationKind usingObjects:(NSSet *)inObjects 观看此属性,但无法使其正常工作。

【问题讨论】:

    标签: iphone ios core-data entity-relationship nsmanagedobject


    【解决方案1】:

    关系的倒数由 CoreData 管理(如果您在模型中设置了它)。如果您尝试手动执行此操作,将会遇到各种麻烦。

    逆是所有关系的属性,如果未在建模工具中设置它们,您应该会收到警告。

    【讨论】:

    • 比尔,谢谢你的回答,也许我不是很清楚,但是 A 和 B 是同一种对象。因此,当我将 A 添加到 B.related 时,B 不会自动成为 A 的 A.related 的一部分。
    • 你必须有 2 个自引用关系,一个是 toOne 另一个是 toMany 然后它们是彼此的逆,同样适用于 A ->> B。
    猜你喜欢
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多