我在我的项目中使用CoreDataBooks示例代码并且很好地实现了它。我试图添加重新排序UITableView中的单元格的能力,但我真的很挣扎。
我看了几个技巧,以下似乎是最合乎逻辑和直截了当的:
UITableView Core Data reordering
但是,我无法让它工作,最可疑的是它包含一个排序描述符,它可能与通过CoreDataBooks示例实现的排序描述符冲突,可能吗?
我无法确定问题所在。
希望有人可以提供帮助,谢谢。
编辑:
- (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];
}
在我的viewDidLoad中会发生这种情况:
NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
如果它不存在,是否会调用fetchedResultsController
或抛出错误?我无法看到还有什么会导致问题。