Por que a função main () de um aplicativo para iPhone nunca tem a chance de terminar?

Considere o seguintemain() método que você encontraria na maioria dos aplicativos para iPhone:

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

Em todos os aplicativos para iPhone que executei no Simulator com esses (incluindo vários projetos de amostra fornecidos pela Apple), o encadeamento nunca saiUIApplicationMain() e qualquer código restante emmain() nunca é executado. Esse comportamento é esperado?

Verifiquei essas declarações apósUIApplicationMain() nunca execute percorrendo o código com um depurador. Quando o usuário interrompe um aplicativo (pressionando o botão "Página inicial", por exemplo), o rastreamento de pilha resultante mostra que[UIApplication _terminateWithStatus:] é chamado eventualmente. Esta função chama @ do delegado da aplicaçapplicationWillTerminate: método. Quando isso terminar,[UIApplication _terminateWithStatus:] parece matar / sair do tópico.

Pode alguém confirmar que é assim quemain() deve funcionar, ou pelo menos confirmar o mesmo comportamento em sua máquin

questionAnswers(6)

yourAnswerToTheQuestion