CoreDataBooks示例 - 重新排序单元格?

时间:2011-12-15 00:29:26

标签: iphone objective-c ipad core-data uitableview

我在我的项目中使用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或抛出错误?我无法看到还有什么会导致问题。

0 个答案:

没有答案