使用xib创建cell时 bug

时间:2022-12-01 15:12:33
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;