Core Data 关系的自定义设置器以强制反向互惠关系
Posted
技术标签:
【中文标题】Core Data 关系的自定义设置器以强制反向互惠关系【英文标题】:Custom setter for Core Data relationship to force inverse, reciprocal relationship 【发布时间】: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
观看此属性,但无法使其正常工作。
【问题讨论】:
【参考方案1】:关系的倒数由 CoreData 管理(如果您在模型中设置了它)。如果您尝试手动执行此操作,将会遇到各种麻烦。
逆是所有关系的属性,如果未在建模工具中设置它们,您应该会收到警告。
【讨论】:
比尔,谢谢你的回答,也许我不是很清楚,但是 A 和 B 是同一种对象。因此,当我将 A 添加到 B.related 时,B 不会自动成为 A 的 A.related 的一部分。 你必须有 2 个自引用关系,一个是 toOne 另一个是 toMany 然后它们是彼此的逆,同样适用于 A ->> B。以上是关于Core Data 关系的自定义设置器以强制反向互惠关系的主要内容,如果未能解决你的问题,请参考以下文章