iOS loadNibNamed confusion, ¿cuál es la mejor práctica?

Estoy familiarizado con la mayor parte del proceso de creación de un XIB para mi propia subclase UIView, pero no todo funciona correctamente para mí, se debe principalmente a la vinculación de los IBOutlets. Puedo hacer que funcionen en lo que parece una forma indirecta.

Mi configuración es la siguiente:

Tengo MyClass.h y MyClass.m. Tienen IBOutlets para un UIView (llamado vista) y un UILabel (llamado myLabel). Agregué la propiedad 'ver' porque algunos ejemplos en línea parecían sugerir que necesitas esto, y en realidad resolvió un problema en el que tenía un fallo porque no podía encontrar la propiedad vista, supongo que ni siquiera en la clase padre UIView .Tengo un archivo XIB llamado MyClass.xib, y su clase personalizada del propietario del archivo es MyClass, que se completó correctamente después de que existiera mi .h y .m para esa clase.

Mi método de inicio es donde estoy teniendo problemas.

Intenté usar el método 'loadNibNamed' de NSBundle mainBundle y configuré al propietario como 'self', con la esperanza de que estuviera creando una instancia de la vista y obtendría automáticamente sus puntos de venta con los de mi clase (lo sé cómo hacer esto y tengo cuidado con ello). Entonces pensé que me gustaría hacer que 'yo' sea igual a la subvista en el índice 0 en esa punta, en lugar de hacerlo

self = [super init];

o algo por el estilo.

Siento que estoy haciendo las cosas mal aquí, pero los ejemplos en línea han tenido cosas similares en el método init, pero asignan esa subvista 0 a la propiedad de vista y la agregan como un niño, pero no es un total de dos instancias de MyClass? ¿Uno esencialmente no vinculado a IBOutlets, que contiene el MyClass secundario creado a través de loadNibNamed? O, en el mejor de los casos, ¿no es una instancia de MyClass con una UIView intermedia adicional que contiene todos los IBOutlets que originalmente quería como hijos directos de MyClass? Eso plantea una pequeña molestia cuando se trata de hacer cosas como instanceOfMyClass.frame.size.width, ya que devuelve 0, cuando la vista UIV secundaria introducida devuelve el tamaño de marco real que estaba buscando.

¿Lo que estoy haciendo mal es que estoy jugando con loadNibNamed dentro de un método init? ¿Debería estar haciendo algo más como esto?

MyClass *instance = [[MyClass alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"MyClass" owner:instance options:nil];  

¿O así?

MyClass *instance = [[[NSBundle mainBundle] loadNibNamed:@"MyClass" owner:nil options:nil] objectAtIndex:0]; 

Gracias de antemano por cualquier asistencia.

Respuestas a la pregunta(3)

Su respuesta a la pregunta