守望远方

热爱生活 热爱工作 守望远方
使用xib创建cell时 bug
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;




posted on 2016-08-26 10:14  守望远方  阅读(508)  评论(0编辑  收藏  举报