Я использую пример кода CoreDataBooks в своем проекте и прекрасно его реализовал. Я пытаюсь добавить возможность изменить порядок ячеек в UITableView, однако я действительно изо всех сил.
Я рассмотрел несколько методов, следующие из них кажутся наиболее логичными и понятными:
Переупорядочение основных данных UITableView
Однако, я не могу заставить его работать, наиболее подозрительным является то, что он включает дескриптор сортировки, который может конфликтовать с дескриптором сортировки, реализованным в примере CoreDataBooks, возможно?
Я не могу точно определить проблему.
Надеюсь, кто-нибудь может помочь, спасибо.
EDIT:
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController != nil) {
return fetchedResultsController;
}
// Create and configure a fetch request with the Book entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"GuestInfo" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// Create the sort descriptors array.
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"displayOrder" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] descriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Create and initialize the fetch results controller.
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"firstName" cacheName:@"Root"];
self.fetchedResultsController = aFetchedResultsController;
fetchedResultsController.delegate = self;
return fetchedResultsController;
}
- (void)viewWillAppear {
myTableViewData = [self getRowObjects];
[self.tableView reloadData];
}
По моему мнению, это происходит так:
NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
Это вызывает fetchedResultsController
или выдает ошибку, если она не существует? Я не вижу, что еще может вызвать проблемы.