Punto de partida de la aplicación ios

si escribe algo en

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"Starting point 1"); } 

main.m

  int main(int argc,char * argv[]) { ...... NSLog(@"Starting point 0"); } 

Cuál es más útil main.m o appDelegate.m uno y en qué scenerio.

Este es un interesante artículo que explica la secuencia de inicio de la aplicación.

http://oleb.net/blog/2011/06/app-launch-sequence-ios/

Como resumen del artículo, la conclusión es:

Además de la aplicación: didFinishLaunchingWithOptions: hay varios más puntos de input para el código personalizado durante la secuencia de inicio (ninguno de los cuales suele ser necesario):

Directamente en main() antes de UIApplicationMain() . El método init de una subclass UIApplication personalizada. Los initWithCoder: o awakeFromNib de nuestra aplicación delegan si se crean a partir de un file NIB (el valor pnetworkingeterminado). Los methods + initialize de nuestra class de delegado de aplicación o una subclass UIApplication personalizada. Cualquier class recibe un post de + initialization antes de que se envíe su primer post desde el progtwig.

Tenga en count que esta secuencia solo ocurre en el lanzamiento real de una aplicación. Si la aplicación ya se está ejecutando y simplemente vuelve a aparecer desde el background, no ocurre nada de esto.

Debe usar su UIApplicationDelegate , no el main.m

El método didFinishedLaunching es un buen punto de partida (pero no el único).

Solo allí están seguros de que todo el código específico de iOS se carga correctamente. En general, la carga podría haber tenido un error, la línea se ejecutaría en el principal, pero no en el método didFinishedLaunching .

El método principal () es lo primero que se llama en términos de aplicaciones iOS; sin embargo, es una regla general que nunca toque la function principal () en la progtwigción iOS. La aplicación – (BOOL): la aplicación (UIApplication *) didFinishLaunchingWithOptions (NSDictionary *) launchOptions se produce después de un lanzamiento exitoso de la aplicación y debe usarse para cualquier process que necesite hacer al comienzo de la aplicación.