Оптимизация запроса выборки основных данных с контролем сегмента - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть сегмент управления с 5 элементами, при выборе каждого элемента данные фильтруются по некоторым критериям и отображается другой результат.Все пять вариантов управления сегментами используют один и тот же объект для извлечения данных.

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

Я хочу оптимизировать это.Правильно ли я делаю это или как это сделать?

Кроме того, каков наилучший способ изменить порядок сортировки по возрастанию и убыванию для уже извлеченных данных.

Спасибо в adv.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

Можете ли вы опубликовать некоторые фрагменты кода?

Если вы уже получили набор MangedObjcts, вы можете изменить порядок NSArray с помощью дескриптора сортировки: sortedArrayUsingDescriptors

- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
0 голосов
/ 06 февраля 2012

Если вы выбираете только небольшое количество NSManagedObjects, вероятно, не нужно много оптимизировать. CoreData и соответствующие ему классы (например, используемый вами FetchResultsController, который особенно хорошо работает с UITableViews) делают большую часть тяжелой работы за вас.

С точки зрения лучшего способа изменить порядок сортировки по возрастанию и по убыванию; это определяется примерно так:

NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:@"someEntityProperty" ascending:YES/NO];

Если для параметра Ascending установлено значение YES, ваши ключи NSManagedObjects будут отсортированы по наименьшему или наибольшему возрастанию) по предоставленному вами ключу. Если вы установите значение NO, вы вернете их от наибольших к наименьшим (по убыванию).

...