Скажите, что у меня есть родительский объект, каждый из которых имеют много детей. Я хочу получить всех родителей, отсортированных по их числу детей. Что-то подобное следующему псевдо коду:
NSEntityDescription * entity = [NSEntityDescription entityForName:@"Parent" inManagedObjectContext:managedObjectContext];
[[NSSortDescriptor alloc] initWithKey:@"children.count" ascending:NO];
//Execute request
Существует ли дорожная конструкция выборка как эти использующие базовые данные? Если не будет никакого способа сделать этот, то будет, сортируя использование sortedArrayUsingSelector:
освободить преимущества размера пакета _PFBatchFaultingArray?
Спасибо, Ben
Ваш запрос будет работать, но (при условии, что children
неисправен) будет использовать методы кодирования значения ключа для свойства children
, что, в свою очередь, вызовет ошибку (см. ] в документации NSManagedObject список методов, вызывающих сбои, и обсуждение этого поведения), так что вы потеряете преимущества в производительности от пакетной обработки и обработки ошибок.
Вы можете рассмотреть возможность сохранения производного атрибута в родительской сущности (назовите его childrenCount
), который отражает количество дочерних элементов, связанных с родительским объектом, если это возможно в вашей ситуации. Это не самое чистое решение, но если вы сохраните его как NSNumber в родительской сущности, у вас будет доступ к нему, даже если потомков
произошел сбой, и вы можете отсортировать его напрямую.