Базовые Данные: сортировка NSFetchRequest по количеству к - многие отношения

Скажите, что у меня есть родительский объект, каждый из которых имеют много детей. Я хочу получить всех родителей, отсортированных по их числу детей. Что-то подобное следующему псевдо коду:

NSEntityDescription * entity = [NSEntityDescription entityForName:@"Parent" inManagedObjectContext:managedObjectContext];

[[NSSortDescriptor alloc] initWithKey:@"children.count" ascending:NO];
//Execute request

Существует ли дорожная конструкция выборка как эти использующие базовые данные? Если не будет никакого способа сделать этот, то будет, сортируя использование sortedArrayUsingSelector: освободить преимущества размера пакета _PFBatchFaultingArray?

Спасибо, Ben

6
задан Ben Reeves 15 March 2010 в 15:27
поделиться

1 ответ

Ваш запрос будет работать, но (при условии, что children неисправен) будет использовать методы кодирования значения ключа для свойства children , что, в свою очередь, вызовет ошибку (см. ] в документации NSManagedObject список методов, вызывающих сбои, и обсуждение этого поведения), так что вы потеряете преимущества в производительности от пакетной обработки и обработки ошибок.

Вы можете рассмотреть возможность сохранения производного атрибута в родительской сущности (назовите его childrenCount ), который отражает количество дочерних элементов, связанных с родительским объектом, если это возможно в вашей ситуации. Это не самое чистое решение, но если вы сохраните его как NSNumber в родительской сущности, у вас будет доступ к нему, даже если потомков произошел сбой, и вы можете отсортировать его напрямую.

5
ответ дан 17 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: