내 질문에 이상하게 들리지만 GenericTableViewCell이라는 UITableViewCell에서 상속받은 클래스와 GenericTableViewCell에서 상속하는 클래스가 있다고 가정 해 보겠습니다. GenericTableViewCell init 메서드에 인수를 전달하여 GenericTableViewCell의 하위 클래스에서이 TableViewCell을 초기화해야한다고 말합니다. Heres는 내가 생각한 것이지만 반복적 인 루프가 있기 때문에 실패 할 것입니다.하위 클래스로 초기화 클래스
@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 함수 외부의 식별자를 확인하고이를 통해 선언 할 셀을 결정해야합니까?
상황에서는 오히려 하위 클래스 '초기화보다 서브 클래스에
initWithStyle:reuseIdentifier:
를 호출해서는 안 NSObject에서'init'을 호출합니다. NSObject 인스턴스가 아닌 NSObject 인스턴스를 반환한다고 가정합니다. 이건 정말 이상한 일입니다 .. – beryllium왜 이것을 원하나요? cellIdentifier를 알리고 g, 아마도 if/else 또는 switch 문을 어딘가에 가지고있을 것입니다. 왜 그 순간에 올바른 테이블 뷰 클래스를 초기화하지 않는 것이 좋을까요? –