2011-05-16 2 views
0

J'essaie de comprendre pourquoi mon application ne quitte pas main (lancement). Je pense que cette ligne est la cause.Mon code ne quitte pas la ligne principale

int retVal = UIApplicationMain(argc, argv, nil , nil); 

Le code source:

#import <UIKit/UIKit.h> 

int main(int argc, char *argv[]) 
{ 
    printf("I'm in main"); 

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

    printf("\nafter the autiorealeas pool"); 

    int retVal = UIApplicationMain(argc, argv, nil , nil); 

    printf("\nbefore the [pool relase] call"); 

    [pool release]; 
    printf("Leaving main"); 
    return retVal; 
} 
+3

Ne vous inquiétez pas! C'est comme ça que ça doit être ... :) –

Répondre

5

C'est vrai - il ne reviendra pas! according to the Apple docs

Valeur de retour

Même si un type de retour entier est spécifié, cette fonction retourne jamais. Lorsque les utilisateurs quittent une application iPhone en appuyant sur le bouton Accueil, l'application passe en arrière-plan.

+0

Excepté les appels printf() c'est le template par défaut. Je ne devrais même pas avoir à toucher du tout pour que mon application soit lancée. – lampShade

+0

C'est vrai, vous n'avez pas. L'appel de la fonction 'UIApplicationMain()' lance le cycle principal UIKit, à partir duquel votre application ne se fermera pas jusqu'à ce qu'elle se termine. Vous n'avez pas besoin d'appuyer sur la fonction 'main()' pour les applications UIKit normales. –

Questions connexes