如何检查重用标识符是否已在UITableView中注册?

时间:2012-03-22 19:19:45

标签: objective-c ios xcode4

在iOS应用中,我们必须先使用表格视图注册nib文件,然后才能使用UITableView#dequeueReusableCellWithIdentifier

示例:

static NSString *myReuseIdentifier = @"MyReuseIdentifier";
UINib *cellNib = [UINib nibWithNibName:myReuseIdentifier bundle:nil];
[self.tableView registerNib:cellNib forCellReuseIdentifier:myReuseIdentifier];

有没有办法检查Nib是否已经注册了UITableView?

我有一个自定义单元格,我在我的应用程序中的多个控制器的各种表中使用。我想将一些代码移动到宏。像

这样的东西
-(CustomCell *)customCell:(UITableView *)tableView
{
    static NSString *reuseIdentifier = @"MyReuseIdentifier";
    if (![table hasAlreadyRegisteredNib:reuseIdentifier]){
       UINib *cellNib = [UINib nibWithNibName:reuseIdentifier bundle:nil];
       [self.tableView registerNib:cellNib forCellReuseIdentifier:reuseIdentifier];     
    }
    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
    return cell;
}

2 个答案:

答案 0 :(得分:5)

我不确定你的意图是否是,但

-dequeueReusableCellWithIdentifier:
如果单元格未准备好重用,则

返回nil。否则,它返回单元格,所以你可以试试。

答案 1 :(得分:0)

我认为registerNib:forCellReuseIdentifier:的重点是减少样板代码。您可以在viewDidLoad方法中简单地调用一次吗?