我正在试图弄清楚KVC机制在处理彼此反向关系的关系属性时是否提供任何帮助。我将使用人为的标准部门/员工示例。
@interface Department : NSObject {
NSMutableArray *employees;
}
@property (retain) NSMutableArray *employees;
// KVC methods for mutating the employees array
@end
@interface Employee : NSObject {
Department *department;
}
@property (retain) Department *department;
只有这一点(以及省略的KVC收集方法)KVC为管理两个方向的关系提供了哪些帮助?我现在只处于概念阶段。我知道使用Core Data我可以设置显式的反向关系,因此当我使用[myDepartment insertObject:newEmployee inEmployeesAtIndex:lastIndex];
时,newEmployee.department
会自动设置为myDepartment
,但是我可以通过单独的KVC和运行时来实现这一点,还是我需要核心数据?
提前感谢您的帮助。
编辑有些不相关但也很重要,在我的代码中,我将Employee的属性设置为Department retain
,但我想知道这是否会导致保留周期?
答案 0 :(得分:1)
Key-Value Coding中没有任何内容可以帮助您维持反向关系。您可以利用键值观察来执行此操作。
您要做的主要事情是:
鉴于所有这些,你可能只想使用核心数据,因为它已经完成了所有这些并且多年来已经进行了广泛的调整,以便做得很好。