我的问题有点奇怪,假设我有一个继承自 UITableViewCell 的类,称为 GenericTableViewCell,还有一些继承自 GenericTableViewCell 的类。我希望能够将一个参数传递给 GenericTableViewCell init 方法,该方法将告诉我 GenericTableViewCell 的哪个子类应该将此 TableViewCell 初始化为。这是我的想法,但我知道它会失败,因为它有一个递归循环。
@implementation GenericTableViewCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier cellIdentifier: (CellIdentifier *) identifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
if ([identifier class] == [FirstIdentifier class]){
self = [[FirstTableViewCell alloc] initWithStyle:style reuseIdentifier:reuseIdentifier];
}
/// more else statements to check for other identifier cases
}
return self;
}
@end
有没有办法做到这一点?或者我应该只检查 init 函数之外的标识符,然后决定我要声明哪个单元格?