UITableView (<UITableView: 0x15799a800; frame = (0 4797; 375 733); clipsToBounds = YES; tag = 305; gestureRecognizers = <NSArray: 0x1584acda0>; layer = <CALayer: 0x1584ac910>; contentOffset: {0, 0}; contentSize: {375, 1321}>) failed to obtain a cell from its dataSource (<HomePageViewController: 0x157885200>) (null)缘由:cell返回nil;1.终于解决了.若是你是storyboard里建立的cell能够直接打标示。若是你是用xib建立的cell直接在xib里打标示是没用的,得在vc里面用代码去打标示。 2.是由于你的cell被调用的早了。先循环使用了cell,后又建立cell。顺序错了。eg:(正确的)@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>{ UINib * nib;}@end-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString * cellIdentifier = @"GameTableViewCell"; if (nib == nil) { nib = [UINib nibWithNibName:@"GameTableViewCell" bundle:nil]; [tableView registerNib:nib forCellReuseIdentifier:cellIdentifier]; NSLog(@"我是从nib过来的"); } GameTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; return cell;}