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;}