ObjC <-> Puente rápido y métodos de fábrica

Tengo alguna clase de Objective-C que quiero usar de Swift. Por razones que están más allá del alcance de esta pregunta, mi claseinitl método @ está marcado como no disponible. En cambio, hay un método de fábrica. Esta es una simplificación de cómo se ve mi clase:

@interface MyClass : NSObject
+ (instancetype)myClass;
- (instancetype)init NS_UNAVAILABLE;
@end

Cuando lo uso de Swift, puedo hacerlet x = MyClass() y esto está bien porque, de acuerdo con las reglas de puente, el compilador intenta asignar métodos de fábrica a inicializadores normales. El problema es que el "no disponible"inite invoca el método @ en lugar del método de fábrica.

¿Cómo hago que Swift use el método de fábrica?

Experimentos adicionales:

Estoy seguroNS_UNAVAILABLE funciona, porque si lo hago:

@interface MyClass : NSObject
- (instancetype)init NS_UNAVAILABLE;
@end

uego, en el lado de Swift, obtengo el esperado'init()' is unavailable mensaje de error

Esto significa que es el método de fábrica que permitelet x = MyClass() para compilar, pero en tiempo de ejecución se llama al método "incorrecto".

Respuestas a la pregunta(1)

Su respuesta a la pregunta