Избегайте сортировки с использованием NSSortDescriptor - PullRequest
0 голосов
/ 28 февраля 2011

Я использую детали базы данных sqlite для отображения в виде таблицы. Использование NSSortDescriptor Я могу отображать содержимое строки таблицы в порядке возрастания или убывания. Пожалуйста, помогите мне избежать процесса сортировки и отображать содержимое в виде таблицы по мере их ввода.Вот код, который я использовал. Он очень хорошо работает, сортируя данные, помогите мне избежать сортировки.-

 (NSFetchedResultsController *)fetchedResultsController {
          // Set up the fetched results controller if needed.
 if (fetchedResultsController == nil) {
    // Create the fetch request for the entity.
 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    // Edit the entity name as appropriate.
 NSEntityDescription *entity = [NSEntityDescription entityForName:@"book"   inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];     
    // Edit the sort key as appropriate.
  NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]            initWithKey:@"name" ascending:YES];
  NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
    [fetchRequest setSortDescriptors:sortDescriptors];
    // Edit the section name key path and cache name if appropriate.
    // nil for section name key path means "no sections".
  NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
    aFetchedResultsController.delegate = self;
    self.fetchedResultsController = aFetchedResultsController;
  NSLog(@"inside table view %@",aFetchedResultsController);     
    [aFetchedResultsController release];
    [fetchRequest release];
    [sortDescriptor release];
    [sortDescriptors release];
    }
  return fetchedResultsController;
    }    

1 Ответ

1 голос
/ 28 февраля 2011

Я предполагаю, что вы используете основные данные с SQL Lite.Если это так, вы должны использовать NSFetchedResultsController, есть много примеров того, как использовать это в Интернете.

NSFetchedResultsController требует дескриптор сортировки, если вы хотите, чтобы ваши значения вышли из строя, помните, что вы заполняете табличное представление на основена ссылку indexPath на элемент в выбранных результатах вашего контроллера (-objectAtIndexPath:).

Таким образом, вы можете получить случайные индексы, которые возвращают строки ниже числа строк

...