2013-03-02 3 views
0

Мне не удается сортировать представление таблицы на основе представления. Я использую arrayController, который управляет сущностью данных ядра.как отсортировать табличный вид на основе представления

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

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

ответ

1

Возможно, вы захотите рассмотреть возможность использования NSFetchedResultsController. Из документации Apple, для NSFetchedResultsController,

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

Код выглядит так, что строка, которая предоставляет дескриптор сортировки, начинается с NSSortDescriptor.

- (NSFetchedResultsController *)fetchedResultsController 
{ 
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"YourEntityName" 
               inManagedObjectContext:yourManagedObjectContext]; 
    [fetchRequest setEntity:entity]; 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"YourSortKey" 
                    ascending:YES]; 

    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
    [fetchRequest setSortDescriptors:sortDescriptors]; 

    NSError *error = nil; 
    NSArray *fetchedObjects = [yourManagedObjectContext executeFetchRequest:fetchRequest 
                     error:&error]; 
    if (fetchedObjects == nil) { 
     // Handle the error 
    } 

    yourFetchedResultsController = [[NSFetchedResultsController alloc] 
      initWithFetchRequest:fetchRequest 
      managedObjectContext:self.managedObjectContext 
       sectionNameKeyPath:nil 
         cacheName:nil]; 

    return yourFetchedResultsController; 
} 
Смежные вопросы