Сложные критерии сортировки с основными данными - PullRequest
1 голос
/ 15 февраля 2012

Я пытаюсь отсортировать свои записи, хранящиеся в основных данных, с некоторыми проблемами.Подробно у меня есть две основные проблемы:

1 # Условие сортировки на основе дочерних записей:

У меня есть две сущности (папа иребенок) с отношениями 1: M, поэтому у одного отца может быть больше детей.Я хотел бы сделать своего рода записи об отце, основанные на имени старшего ребенка.Таким образом, в основном, я должен выполнить поиск в записях о детях определенного отца и получить имя ребенка с максимальным возрастом, а также сделать отцов на основе этой информации.Как мне написать дескриптор сортировки?

2 # Условие сортировки на основе расчета:

У меня есть список адресов в моей сущности.Для каждой строки у меня есть столбец для соответствующей широты и один для долготы.Исходя из текущей позиции, я хотел бы отсортировать эти записи от ближайшего к самому дальнему.Поскольку расстояние зависит от позиции пользователя, это переменная информация, поэтому она не сохраняется в моей основной таблице данных.Итак, как отсортировать эти записи?Каков наилучший подход?

Будем очень благодарны за каждое предложение!

Заранее спасибо, ясса

1 Ответ

1 голос
/ 15 февраля 2012

Не могли бы вы использовать некоторые операции сравнения на наборе результатов?

Сравнительный метод

- (NSComparisonResult)compare:(Person *)otherObject {
    return [self.child compare:otherObject.child];
   }

NSArray *sortedArry;
sortedArry = [parentArray sortedArrayUsingSelector:@selector(compare:)];

БЛОКИ

NSArray *sortedArry;
sortedArry = [parentArray sortedArrayUsingComparator:^(id a, id b) {
   NSString *first  = (Child*)a.name;
   NSDate   *second = (Child*)b.name;
   return [first compare:second];
}];

NSSortDescriptor

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"child.name"
                                          ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArry;
sortedArry = [parentArray sortedArrayUsingDescriptors:sortDescriptors];

Мне интересно посмотреть, каков твой ответ. У меня была похожая проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...