我的問題是有點奇怪,可以說我有一個類從UITableViewCell繼承調用GenericTableViewCell和一些從GenericTableViewCell繼承的類。 我想能夠傳遞一個參數給GenericTableViewCell初始化方法,它會告訴我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函數之外的標識符,並由此決定我聲明哪個單元格?
當我從NSObject調用'init'我想它會返回我的NSObject實例,而不是例如NSNumber。這真的很奇怪的事情.. – beryllium
爲什麼你想要這個?知道什麼cellIdentifier發送阿隆g,你可能已經有一些if/else或switch語句來檢查。爲什麼不在此刻初始化正確的表視圖類? –