我有一个视图,其中包含用于显示联系人列表的表和另一个用于详细信息的视图。问题是当我打开联系人 - 视图然后它工作正常;但是当我打开它时,转到详细的联系视图并按回然后它会崩溃。 它显示我的错误如下。
断言失败 - [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
答案 0 :(得分:1)
显然,视图正在重新加载,并且dataSource在某处感到不安。在Contacts Controller -viewDidLoad
方法内添加以下代码:
self.tableView.dataSource = self;
self.tableView.delegate = self;
答案 1 :(得分:1)
得到了解决方案。上面的代码中没有实际错误。在viewWillDisappear()方法的详细视图中出现错误 根本原因是:当按下后退按钮时,键盘被隐藏,导致UITableView执行 CellForRowAtIndexPath()方法,当时和 ViewWillDisappear()方法我设置表格数据源为零。这导致了错误。