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?

questionAnswers(2)

yourAnswerToTheQuestion