Это вызвано известной ошибкой во внешнем хранилище Core Data в iOS 12.0.x, как обсуждалось здесь: https://stackoverflow.com/a/52628198/2347353. Обходного пути нет, но ошибка, похоже, исправлена в iOS 12.1.
Чтобы ответить на ваш вопрос, хотя, с небольшим количеством хакерских покер, вы можете получить имя файла, в котором хранятся данные предполагается , и проверить, существует ли он или нет.Если файл отсутствует, то вы знаете, что произошло повреждение, поэтому вы можете избежать чтения атрибута и, следовательно, предотвратить сбой приложения.
Ничего из этого не задокументировано, но файлы, похоже, хранятся в_EXTERNAL_DATA
скрытый каталог в папке «Документы» вашего приложения с именем файла, которое вы можете определить из значения, которое сохраняется в хранилище данных.
Этот ответ показывает, как это сделать в Objective-C, и вот откуда я получил много подробностей: https://stackoverflow.com/a/13497992/2347353. Но для тех, кто пытается это сделать дома, обращайте внимание на предупреждения, что этоВсе они основаны на деталях внутренней реализации Apple Core Data и могут перестать работать в любой момент в будущем.