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