Документация Apple «Параллелизм с базовыми данными» утверждает следующее при обсуждении использования основных данных с фоновыми потоками.
Сохранение в фоновом потоке подвержено ошибкам
Асинхронные очереди и потоки не предотвращают завершение работы приложения. (В частности, все потоки на основе NSThread являются «отсоединенными» — полную информацию см. в документации по pthread — и процесс выполняется только до тех пор, пока не будут завершены все неотсоединенные потоки.)
и в частности:
Если вам нужно сохранить в фоновом потоке, вы должны написать дополнительный код, чтобы основной поток предотвращал завершение работы приложения до тех пор, пока не будут завершены все операции сохранения.
Каков рекомендуемый подход для достижения этого в приложении IOS?