O ApplicationWiltterinate está atrasado, existe um método mais rápido a ser usado ao desistir?
-
06-07-2019 - |
Pergunta
Estou usando - (void) ApplicationWilTerminate: (NSNotification *) Notificação para salvar os dados quando meu jogo sair e, em seguida, carregá -lo se o usuário pressionar o botão Carregar na próxima vez. A economia e o carregamento funcionam bem, mas notei que há algum atraso entre quando pressiono o botão home e quando os dados são salvos. Sempre que saio, relançar e carregar, o temporizador do jogo continua funcionando e os estados estavam mudando antes que o ApplicationWilterinate seja chamado; Por exemplo, os objetos do jogo em movimento são carregados em diferentes locais, então o que eu vi pela última vez pressionando o botão doméstico. Curiosamente, se eu pressionar o botão doméstico rapidamente. Parece sair do desligamento do aplicativo, e os controles da música aparecem. No entanto, se eu desistisse dessa maneira sempre que carrego os dados novamente, o temporizador não continuava - os objetos do jogo não continuavam se movendo com suas velocidades. Existe uma maneira de contornar isso?
Solução
Você já olhou UIApplicationWillResignActiveNotification
? Algo como o seguinte no tempo de carga / init no seu 'principal controlador' ou UIApplication
subclasse:
[[NSNotificationCenter defaultCenter] addObserver:self /* or whatever */ selector:@selector(applicationWillTerminate:) name:UIApplicationWillResignActiveNotification object:NULL];