Dispatch Salvando operações no applicationDidEnterBackground:
Documentação da Apple de"Estados de aplicativos e multitarefa" (Seção "O que fazer ao mudar para o plano de fundo") para salvar quando o aplicativo for para segundo plano:
Salve dados do usuário e informações sobre o estado do aplicativo. Todas as alterações não salvas devem ser gravadas no disco ao inserir o plano de fundo. Essa etapa é necessária porque seu aplicativo pode ser silenciado em segundo plano por vários motivos. Você pode executar essa operação a partir de um thread em segundo plano, conforme necessário.
Quando inicio uma operação enviada, por ex. para salvar o que leva algum tempo aapplicationDidEnterBackground:
como o seguinte, eu não obtenho a saída do NSLog quando pressiono o botão home. Depois de retornar ao aplicativo, a saída do NSLog é exibida.
- (void)applicationDidEnterBackground:(UIApplication *)application {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self performOperation];
NSLog(@"Operation finished");
});
}
Posso ter certeza de que operformOperation
método foi executado completamente ou interrompeu quando o aplicativo entrou no modo de suspensão?