ios - reloadData TableView&核心数据

时间:2012-11-30 02:30:16

标签: objective-c ios uitableview core-data

我在重新加载在UIViewController中设置的tableView时遇到了一些麻烦。

  • 使用CoreData填充(此作品)
  • 出于某些设计目的,它还有一个自定义的TableViewCell

现在我通常使用的是:[_mainTableView reloadData];

这次不起作用。

这是因为自定义Cell还是Core Data的FetchRequest最初加载正常并在重新启动应用程序时显示数据?

我在SO和Google上看过几个问题和教程,但在我的案例中似乎都没有。

我也研究过这些方法:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
{
    [self.tableView beginUpdates];
}

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
{
    [self.tableView endUpdates];
}

在此处找到:beignUpdates

感谢任何建议。

2 个答案:

答案 0 :(得分:0)

您是否合成了表格视图?请试试这个:

[self.mainTableView reloadData];

希望,它会起作用。并且,既然你在viewWillAppear上重新加载它,请确保它既没有分配新的时间也没有再分配它的委托/数据源,如果是,那么,第一次,做类似的事情:

_mainTableView.delegate = nil; _mainTableView.delegate = self; //类似地,对于数据源...

而且,你需要明确调用你的viewWillAppear(我想你已经这样做了。)

请关注我们。

感谢。

答案 1 :(得分:0)

感谢您的输入,我终于把它排序了。

而不是调用[_mainTableView reloadData]我不得不再次调用fetch方法。

    if (_managedObjectContext == nil)
{
    _managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
    NSLog(@"After _managedObjectContext: %@", _managedObjectContext);
}

[self setupFetchedResultsController];