¿Cómo son los objetos definidos en un archivo XIB y la forma en que son creados en tiempo de ejecución?

StackOverflow https://stackoverflow.com/questions/1453807

  •  12-09-2019
  •  | 
  •  

Pregunta

Acabo de comprar un Mac y estoy empezando a explorar el desarrollo de software usando Cocoa y Objective-C con XCode en la Nieve Saltó viene de un fuerte Microsoft y C# backgrund

Toda la documentación y los tutoriales que he leído utilizar el Interface Builder y XCode para crear aplicaciones con interfaces de usuario.Mi comprensión actual es que los objetos creados por el Interface Builder, de alguna manera, se define en una .xib archivo y creados en tiempo de ejecución.

Un paquete contiene el código y los recursos que lo acompañan.Es correcto decir que una .xib archivo es en realidad un paquete que contiene la interfaz de usuario de los recursos y que este paquete se carga (que es el verbo correcto?) en tiempo de ejecución y las instancias de objetos se crean?

Si el abive es cierto hay alguna manera de que pueda ver el código generado por la Interfaz del Generador y el punto en el código donde estos objetos se crean, sin ver al menos una vez siento que hay un montón de "magia" sucediendo y que no me ayuda en esta etapa de mi aprendizaje.

¿Hay algo que debería ser de lectura para comprender el aparente cambio de paradigma entre C# / WinForms y Objective-C / Mac OS / Cacao?

¿Fue útil?

Solución

Es correcto decir que una .xib archivo es en realidad un paquete que contiene la interfaz de usuario de los recursos y que este paquete se carga (que es el verbo correcto?) en tiempo de ejecución y las instancias de objetos se crean?

No. Un paquete es uno de varias estructuras de directorios específicas, y un xib archivo es un archivo regular, no un directorio.

Un xib archivo contiene las descripciones de los objetos.Cuando se compila la punta (por lo general como parte de la construcción de su aplicación), la punta del compilador lee en el xib, crea los objetos como se describe en el mismo, y los archiva en una punta, que no es un paquete de cualquiera.

Cuando se carga la punta en su aplicación, la punta del cargador de unarchives los objetos y se asegura de que todas las salidas están conectadas como estaban en IB entre sus objetos y a y desde el Dueño del Archivo.

No se preocupe acerca de los detalles de implementación.Puntas De Trabajo Justo.Todo lo que tienes que hacer es:

  1. Crear xib archivos.Si utiliza la versión de control, estos son lo que se le indica a la pista.
  2. Asegúrese de que está en .lproj carpetas (de forma que los localizadores pueden crear versiones localizadas de ellos).
  3. Vamos a Xcode manejar el resto.

Otros consejos

La clave es darse cuenta de que no hay ningún código en el sentido normal ... al menos, los recursos de interfaz de usuario plumín / xib no son simplemente contruscts de código de Objective-C que son meramente generados por el constructor Inteface. Estos son los objetos que son una especie de "congelada" en las semillas y "congelar" cuando sea necesario por las aplicaciones (o despertado, supongo, como el awakeFromNib sugeriría). Ellos se archivan en forma xml / plist / etc, en lugar de ser un marco para generar código fuente objetiva-c.

Tenga en cuenta que los objetos que han sido serializados como XML u otros datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top