【问题标题】:NSSortDescriptor on to many relationship subatributes sumNSSortDescriptor 对许多关系子属性总和
【发布时间】:2015-01-31 20:29:25
【问题描述】:

首先,这是我的数据结构(简化):

CATEGORY
    -name
    -subcategories  <- this is a to many relationship to SUBCATEGORY

SUBCATEGORY
    -name
    -elements <- this is a to many relation to ELEMENT

ELEMENT
    -name

我想使用 NSSortDescriptor 获取我的 CATEGORY 对象,以便根据子类别元素计数的总和对它们进行排序。

示例: CATEGORY (A) 有三个 SUBCATEGORY (A1, A2, A3) A1 有 3 个元素,A2 有 2 个元素,A3 有 3 个元素 这使得 3 + 2 + 3 = 8

CATEGORY (B) 有两个 SUBCATEGORY (B1, B2) B1 有 2 个元素,B2 有 11 个元素 这使得 2 + 11 = 13

所以B应该在A之前

我的问题是: 是否可以在不创建仅计算每个类别中元素数量的属性的情况下执行此操作?

【问题讨论】:

    标签: ios objective-c cocoa-touch core-data


    【解决方案1】:

    可以当然使用单独的属性,您可以通过某些触发器自动更新该属性,您可以通过在托管对象子类中实现覆盖来配置这些触发器,例如willSavesetSubcategory

    幸运的是,这不是必需的,因为排序描述符支持键路径。

    [NSSortDescriptor sortDescriptorWithKey:@"subcategories.@count", ascending:YES];
    

    您需要先获取所有对象,然后使用此设置在内存中应用排序。如果这不可行,您将不得不采用第一个解决方案。

    【讨论】:

    • 这就是我放弃做的事情,所以我会接受这个答案,但我希望我可以在不将数据加载到内存中的情况下做到这一点,然后计算所有内容......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多