Вы должны быть очень осторожны с фоновыми потоками, обращающимися к базе данных во время отладки! Это связано с тем, что когда отладчик останавливает обработку (например, в точке останова), все потоки приостанавливаются, включая потоки, которые могут находиться в середине вызова базы данных, где-то между вызовом «open» базы данных и вызовом «close» базы данных. 1001 *
Если вы остановились на точке останова и нажали знак остановки в XCode, ваше приложение немедленно завершится. Это очень часто приводит к таким ошибкам, как та, которую вы видели, или ошибка «поврежденная база данных».
Там действительно нет никакого решения (потому что нет способа изменить поведение «остановить задачи», но я разработал некоторые методы, чтобы смягчить его:
1. Добавьте код, чтобы обнаружить приложение, входящее в фоновый режим, и ваши операции с БД изящно прекратятся.
2. Никогда не используйте знак остановки, чтобы остановить обработку во время отладки. Вместо этого, когда вы сделали точку останова, а затем «продолжить», нажмите кнопку «Домой» на симуляторе или устройстве (которая должна вызвать код, который вы добавили в шаге 1), подождите, пока приложение перейдет в фоновый режим, затем вы можете остановить запуск. *