鉴于以下核心数据模型:
EntityA <--->> EntityB <--->> EntityC
我已经在第一个EntityA
中提取了所需的TableViewController
。选择行时,用户会按照关系转到第二个ViewController。第二个视图有一个@property EntityB *entityB
。在第二个视图中,有些控件将修改EntityC
的属性。因此,如果EntityB
有4个EntityC
,则会有4个滑块。每个滑块都会修改EntityC
之一的属性。
我的问题是:选择正确的EntityC的最佳方法是什么?以下谓词
NSEntityDescription *entity = [NSEntityDescription entityForName:@"EntityC" inManagedObjectContext:self.managedObjectContext];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"entityB == %@ AND rank == <#some number#>", self.entityB];
返回正确的值。但是,当选择4个实体中的1个时,这不是太过分了吗?
答案 0 :(得分:0)
如果您使用有序关系,那么您可以直接获取相应的对象。如果没有那么你需要使用一个谓词(虽然你可以在关系(如果小计数)或MOC(如果大数)上运行它。
答案 1 :(得分:0)
我对有序关系的经验不佳。重新排列容易出错,并且您没有NSSet
或NSArray
的许多优点,因为NSOrderedSet
都不是从position
派生的。
而是向EntityC
添加{{1}}属性。在我看来,这是最直接的方式。不,即使只有少数几个实例,IMO也不会有些过分。现在,您可以非常轻松地对关系实体进行排序和识别。