Digamos que tengo un controlador de vista, o un controlador de ventana, que es (como es habitual) el "Propietario del archivo" en un archivo XIB correspondiente.Variables de instancia de IBOutlet en archivos de implementación (.m)
Es (como todos saben) muy común tener IBOutlet
s en la clase de controlador que luego puede conectar en el XIB utilizando el Interface Builder.
Hasta ahora, he estado creando variables de instancia IBOutlet
en mis archivos de interfaz (.h). Pero (como todos saben) IBOutlet
s son muy a menudo un mecanismo privado de la clase de controlador; los extraños ni siquiera deberían saber sobre ellos.
Es por esto que ahora, desde que Objective-C recientemente comencé a ofrecer la capacidad para hacerlo, quiero poner todos mis IBOutlet
en mis archivos de implementación (.m).
Intenté hacer esto, y esto parece funcionar bien. Mis preguntas son estas: ¿Por qué funciona esto? Tenía la impresión de que Interface Builder solo podía ver los archivos de cabecera de la clase, no echar un vistazo a sus archivos de implementación. ¿Me equivoco? ¿Cómo es que Interface Builder puede "ver" en los archivos de implementación? ¿Podría ser potencialmente peligroso poner IBOutlet
variables de instancia en los archivos de implementación?
Tenga en cuenta que esto solo es posible cuando se usa el tiempo de ejecución moderno en la Mac, lo que significa solo 64 bits. El tiempo de ejecución clásico requiere que todos los ivars se declaren en el encabezado. –