Я добавил расширение Today в моем существующем приложении и настроил отдельный стек основных данных (повторное использование того же кода, который используется для настройки основных данных для основного приложения).
Мои данные приложения удаляются, когда я запускаю расширение «Сегодня», как если бы настройка текущего ядра данных данных удаляла существующие данные. См ниже код для возврата persistentCoordinator
:Сегодня Расширение, удаляющее данные в sqlite
let options = [NSMigratePersistentStoresAutomaticallyOption:true,
NSInferMappingModelAutomaticallyOption:true,
NSSQLitePragmasOption:["journal_mode":"MEMORY"]]
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: storeURL, options: options, error: &error) == nil {
NSLog("Unresolved error \(error)")
}
return coordinator
Похоже, что ваш 'storeurl' неверен, убедитесь, что он использует сгруппированную папку. Ваша функция 'applicationDocumentsDirectory' должна возвращать groupPath, в вашем случае кажется, что приложение создает новый CoreData, а не использует правильный. – iphonic
Я использую идентификатор групповой группы для установки основных данных. Данные удаляются, только если я попытаюсь открыть сегодня (выборка данных), а главное приложение не будет уничтожено. Если основное приложение убито, сегодня работает нормально, и данные не удаляются. –
Почему вы устанавливаете 'journal_mode' в' MEMORY'? Документация SQLite говорит, что этот «... сохраняет дисковый ввод-вывод, но за счет безопасности и целостности базы данных».] (Https://sqlite.org/pragma.html) –