Iphone 如何从一对多关系的子集中获取sectionNameKeyPath?

Iphone 如何从一对多关系的子集中获取sectionNameKeyPath?,iphone,uitableview,core-data,nsfetchedresultscontroller,Iphone,Uitableview,Core Data,Nsfetchedresultscontroller,我试图从一对多关系中为我的节名获取一组值。我的fetchRequest实体被设置为单个实体,我想对sectionNameKeyPath使用(例如)@“to_many.attribute1”。但是,我只想使用其中的某个子集对实体进行排序 有没有办法向sectionNameKeyPath添加谓词 或者,正如我担心的那样,我是否需要重新创建数据模型,以便更容易访问数据?当我的sectionNameKeyPath需要引用一些非常重要的内容时,我使用的一个选项是向我的模型添加一个新属性,并将其标记为瞬态

我试图从一对多关系中为我的节名获取一组值。我的fetchRequest实体被设置为单个实体,我想对sectionNameKeyPath使用(例如)@“to_many.attribute1”。但是,我只想使用其中的某个子集对实体进行排序

有没有办法向sectionNameKeyPath添加谓词


或者,正如我担心的那样,我是否需要重新创建数据模型,以便更容易访问数据?

当我的sectionNameKeyPath需要引用一些非常重要的内容时,我使用的一个选项是向我的模型添加一个新属性,并将其标记为瞬态

然后,您可以向托管对象添加一个类别,该类别具有一个根据您的规则计算字段的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;
}

您的谓词类似于:

ALL to_many.attribute1=="something"
“ALL”和“ANY operators”搜索集是多对多关系返回的内容。不过,你不能用菊花链把它们拴起来

ALL to_many.another_to_many.attribute1

是的,但我想明确知道是否可以向sectionNameKeyPath添加谓词。如果您指的是NSFetchedResultsRequest的sectionNameKeyPath,则为否。如果要更改默认的节名行为,则必须为NSFetchedResultsRequest创建子类。这听起来很有希望!非常感谢。虽然这会起作用,但对于大量数据来说,这可能是资源密集型的。瞬态方法要求在计算瞬态值之前实例化对象。