Вам необходимо закрыть ваш базовый стек данных сверху вниз.
- Убедитесь, что ни один объект, кроме контекста управляемого объекта, например, не содержит никаких управляемых объектов. убедитесь, что объекты не содержатся в массиве, принадлежащем контроллеру пользовательского интерфейса.
- Сохраните контекст управляемого объекта, чтобы очистить все свободные концы.
- Полностью освободите контекст и обнулите его. В любом случае контекст никогда не должен храниться более чем одним объектом, например, делегатом приложения.
- Отправьте
removePersistentStore:error:
постоянному координатору хранилища.
- Используйте стандартные файловые операции для удаления самого файла хранилища.
Такое изменение основных данных на лету затруднительно, поскольку базовые данные - это не просто небольшая база данных, свисающая со стороны приложения. Он предназначен для того, чтобы служить целым слоем модели приложения. Так как Apple действительно занимается разработкой Model-View-Controller, то модель является реальным ядром программы (отсюда и название Core Data). Таким образом, вы не сможете включить и выключить ее так, как обычную базу данных SQL. ,
Возможно, вы действительно захотите переосмыслить свой дизайн, чтобы вы могли менять серверы, не выключая всю модель данных. Например. просто удалите все управляемые объекты, связанные с неиспользуемым сервером.