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

bod*_*ous 8 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];
Run Code Online (Sandbox Code Playgroud)

有没有办法检查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;
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ias 5

我不确定这是否符合您的意图,但是

-dequeueReusableCellWithIdentifier:
Run Code Online (Sandbox Code Playgroud)

nil如果单元尚未准备好重用,则返回。否则,它将返回单元格,因此您可以简单地尝试。