我正在尝试从我的节名称的一对多关系中获取一组值。我的fetchRequest实体设置为单个实体,我想使用(例如)@“to_many.attribute1”作为sectionNameKeyPath。但是,我只想使用它们的某个子集来对实体进行排序。
有没有办法在sectionNameKeyPath中添加谓词?
或者,我恐怕可能需要重新创建数据模型,以便更轻松地访问数据?
答案 0 :(得分:0)
当我的sectionNameKeyPath需要引用非平凡的东西时,我使用的一个选项是向我的模型添加一个新属性并将其标记为Transient。
然后,您可以向托管对象添加一个类别,该托管对象具有根据您的规则计算字段的getter。
@implementation MyObject (SectionKeyPathAdditions)
-(NSDate *)toManyAttribute1Date // This is the new transient attribute name
{
NSDate *dynamicReturnDate = [NSDate date];
// use app logic to grab the subset of valid dates from attribute1
return dynamicReturnDate;
}
答案 1 :(得分:0)
你的谓词会是这样的:
ALL to_many.attribute1=="something"
ALL和ANY运算符搜索集合,这是多对多关系返回的。虽然,你不能菊花链它们,例如。
ALL to_many.another_to_many.attribute1