【问题标题】:NSSortDescriptor with to-many relationship具有一对多关系的 NSSortDescriptor
【发布时间】:2011-10-20 16:42:37
【问题描述】:

我有一个父实体,它有多个子实体。如果我使用属性(例如名称)订购 Parent fetch,那么一切正常。但如果我试试这个:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"child.@count" ascending:NO];

它不起作用。我也试过添加

[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:[entityProperties objectForKey:@"child"]]];

但效果不佳。

我是否可以按 to-many.@count 排序,还是需要在每次添加孩子时添加属性并更新它?

【问题讨论】:

    标签: core-data


    【解决方案1】:

    假设您使用的是 sqlite 商店;您不能按@count 排序,因为它是在“对象”级别解析的,而NSFetchRequest 上的NSSortDescriptor 是在数据库级别解析的。因此,正如您所猜测的,您需要创建一个计数属性来进行排序。

    如果您使用二进制或内存存储类型,那么 count 应该可以正常工作,因为它们只能作为对象访问。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 2015-01-31
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    相关资源
    最近更新 更多