me pregunto donde el código comienza ejecución (como por qué hace un NSView subclase ejecutar y dibujar sin mí una llamada explícita a ella?) Y si no tengo que meter en el bucle principal int main() ¿A dónde va?
En un proyecto de xcode, usted tiene una función principal.m archivo que contiene la función 'int main'. En realidad, no encontrará el código que llama al sorteo NSView explícitamente, este código está oculto en una estructura iPhone o Mac OS X. Simplemente sepa que hay un bucle de eventos oculto en su 'int main' que verifica los cambios para que sepa cuándo actualizar su vista. No necesita saber dónde está este ciclo de eventos, no es información útil ya que puede anular los métodos o crear y asignar delegados que pueden hacer cosas cuando esto sucede.
Para obtener una mejor respuesta, deberá explicar qué quiere decir con un "bucle principal" que quería poner dentro de la función 'int main'.
Es raro que salga de una poca experiencia en C++. Parece antinatural que la función principal sería estar tan vacía.
Puede encapsular mil millones de líneas de código en una función y ponerla en 'int main'. No te dejes engañar por un principal solo teniendo unas pocas líneas, eso se hace a propósito. Una buena programación nos enseña a mantener el código en contenedores específicos para que esté bien organizado. Apple optó por hacer el "verdadero" punto de lanzamiento de sus aplicaciones para el iPhone en esta sola línea de código dentro del archivo main.m:
int retVal = UIApplicationMain(argc, argv, nil, @"SillyAppDelegate");
Desde que una pieza de código, se puso en marcha el delegado de una aplicación y no Regrese el control a la función principal hasta que finalice.
Ok, genial. Ese enlace es más o menos exactamente lo que estaba buscando. Una pregunta rápida si tiene tiempo: ¿cómo puedo agregar eventos a la cola de eventos que no se originan a partir de la entrada del usuario, sino desde el inicio de la aplicación? Y por supuesto, muchas gracias. Esa es una guía muy útil. –
No hay problema. En realidad, es probable que desee utilizar los eventos que ya se utilizan en el inicio de la aplicación. Para la programación de Mac, el archivo Main Nib (Xib) debe tener un delegado que se ajuste a NSApplicationDelegate. Este delegado tendrá dos selectores llamados en la aplicación de inicioWillFinishLaunching: y applicationDidFinishLaunching :. utilícelos para preformar el código que debería ocurrir al inicio de la aplicación. En las plantillas para XCode, el proyecto normalmente crea una clase AppDelegate que tendrá un stub de applicationDidFinishLaunching para usted. –
Me atraviesas por todas partes. Eso, nuevamente, es exactamente lo que quería saber. ¡Gracias por su amabilidad! –