У нас есть код для определения, нет ли в данный момент файла базы данных. Если это так, мы выполняем некоторые процедуры инициализации для заполнения базы данных пользователя на основе некоторых файлов, которые могут существовать в файловой системе (в основном, процедуры миграции).CoreData обнаруживает несогласованность базы данных при запуске
Процедура, в основном, как этот
NSURL * defaultStorePath = [NSPersistentStore MR_defaultLocalStoreUrl];
BOOL initializeDatabase = ![[NSFileManager defaultManager] fileExistsAtPath:[defaultStorePath path]];
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreAtURL:defaultStorePath];
if(initializeDatabase)
// ... ingest user files ...
Так это хорошо работает, если файл .sqlite
нет. Однако, если файлы .sqlite-wal
или .sqlite-shm
отсутствуют/повреждены, мы не можем найти способ обнаружить этот сценарий.
Мы хотели бы сделать проверку целостности данных или что-то в этом случае.
Возможно, мы сможем запросить функцию с помощью MagicalRecord, чтобы помочь нам справиться с отказами. благодаря – yano