iOS 8.0.2中的“uitable数据源未设置”错误

时间:2014-10-01 07:18:03

标签: ios uitableview

我有一个视图,其中包含用于显示联系人列表的表和另一个用于详细信息的视图。问题是当我打开联系人 - 视图然后它工作正常;但是当我打开它时,转到详细的联系视图并按回然后它会崩溃。 它显示我的错误如下。

断言失败 - [UITableView _createPreparedCellForGlobalRow:withIndexPath:],/ SourceCache / UIKit_Sim / UIKit-1914.84 / UITableView.m:6048。
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'未设置UITableView数据源'

我在iOS 8.0.2中观察到这一点,它在iOS 7.0上运行良好。有没有与iOS版本相关的内容。?

Message模块中也发生了同样的事情。我在这里发布代码片段。

MessageListController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];

    self.tabBarController.tabBar.hidden = FALSE;

    instanceMessageList.delegate = self;
    instanceMessageList.dataSource = self;
    [self setNavigationBarView];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self setEditing:FALSE animated:YES];
}

- (void)dealloc
{
    [instanceMessageList release];
    [super dealloc];
}

MessageListViewController.h

@interface MessageListViewController : UIViewController <UITableViewDelegate, UITableViewDataSource,NSFetchedResultsControllerDelegate, MessageDelegate, UIActionSheetDelegate>
{
#pragma mark -
#pragma mark Instance variable declaration

    IBOutlet UITableView *instanceMessageList;
    IBOutlet UILabel *noMessages;
}

#pragma mark -
#pragma mark Instance variable property declaration

@property (nonatomic, retain) UITableView *instanceMessageList;

@end

2 个答案:

答案 0 :(得分:1)

显然,视图正在重新加载,并且dataSource在某处感到不安。在Contacts Controller -viewDidLoad方法内添加以下代码:

self.tableView.dataSource = self;
self.tableView.delegate = self;

答案 1 :(得分:1)

得到了解决方案。上面的代码中没有实际错误。在viewWillDisappear()方法的详细视图中出现错误 根本原因是:当按下后退按钮时,键盘被隐藏,导致UITableView执行 CellForRowAtIndexPath()方法,当时和 ViewWillDisappear()方法我设置表格数据源为零。这导致了错误。