Справочной информации:Ручка основных данных Выборка объекта, который No Longer не существует
У меня есть приложение, которое получает доступ к учетной записи электронной почты пользователя и извлекает данные учетной записи: электронная почта, папка и т.д. Этот процесс включает в себя несколько этапов, последнее из который заключается в сохранении или обновлении вновь полученной информации до основных данных. Весь процесс от начала до конца может занять пару секунд.
Вот проблема:
- Пользователь открывает приложение, извлечение новых или обновленных учетных данных начинается процесс.
- Пользователь решает удалить текущую учетную запись, для которой происходит выборка.
- Выполняется вызов для отмены любых открытых запросов на выборку для текущей учетной записи, однако запросы на выборку завершены, а основные данные теперь пытаются сохранить новые данные.
- При попытке доступа к «существующим» объектам данных ядра для их обновления объекты удаляются и происходит сбой.
В частности, ошибка я получаю выглядит следующим образом:
CoreData: annotation: logically false fetch request <NSFetchRequest: 0x13ce1430> (entity: Thread; predicate: (threadId == 1457719230395529203 AND folder == <Folder: 0xc1994c0> (entity: Folder; id: 0xc2ccb20 <x-coredata://A0837E88-30EB-46E8-A9BC-D6699EC7F160/Folder/p10> ; data: <fault>)); sortDescriptors: ((null)); type: NSManagedObjectResultType;) short circuits.
И авария происходит на линии, где основные данные пытается извлечь объект, который больше не существует.
Будучи новым для основных данных, мне интересно, существует ли общая стратегия для обработки таких обстоятельств.