CoreData反向关系是否应表示为保留属性?

时间:2011-10-30 16:39:27

标签: ios core-data memory-management retain object-graph

我有两个实体(会话和用户)。会话实体已与用户实体记录了用户关系。并且User实体与Session实体具有会话反向关系。

Xcode为直接和反向关系生成具有retain属性的属性。 从对象图的角度来看是否可以? 我的理解是反向关系应该表示为赋值属性。

此外,在模式编辑器中,哪个关系是主要关系是不可见的(即loggedInUser将会话作为其反向,并且会话的反向是loggedInUser)。

也许我错过了什么?

感谢。

1 个答案:

答案 0 :(得分:2)

并没有真正解释为什么会这样,但Apple文档为Core Data

  

除了始终是非原子的,动态属性只会保留或复制属性 - assign被视为保留。你应该谨慎使用副本,因为它增加了开销。您不能将副本用于关系,因为NSManagedObject不采用NSCopying协议,并且它与多对多关系的行为无关。

通过阅读,即使您确实将关系设置为assign,也会将其视为retain