Subclasse de uma subclasse UIView carregada de um bico

Eu tenho uma aulaFooView, isso é uma subclasse deUIView, e cuja visão é carregada de um bico, algo como:

+ (instancetype)viewFromNib
{
    NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"FooView" owner:self options:nil];
    return [xib objectAtIndex:0];
}

A ponta em si tem sua classe personalizada definida comoFooView no Inspetor de Identidade.

Isto é instanciado como:

FooView *view = [FooView viewFromNib];

Isso se comporta como você esperaria. No entanto, quando o próprio FooView é subclasse como FooSubclassView e instanciado como:

FooSubclassView *view = [FooSubclassView viewFromNib];

view ainda é do tipoFooView, nãoFooSubclassView.

Swizzling a classe comobject_setClass não conserta o fato de que o objeto subjacente é uma instância deFooViewe, portanto, os métodos chamados na instância da subclasse serão os da superclasse (FooView), nãoFooSubclassView.

Como posso corrigir isso para que as subclasses sejam do tipo correto, sem precisar criar uma nova ponta para cada subclasse ou ter que reimplementar?viewFromNib em cada subclasse?

questionAnswers(2)

yourAnswerToTheQuestion