Итак, в настоящее время у меня есть настройка расширения службы, которая записывает данные в CoreData (или я считаю, что это так). Учитывая, что xcdatamodelid является общим для обеих целей, могу ли я не писать в одну и читать в другую?
Вот как я создаю NSPersistenContainer в обеих целях:
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "commonName")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
И вот как я добавляю сущность:
func addEntity(uid: String, status: String) {
let context = persistentContainer.viewContext
if let entity = NSEntityDescription.entity(forEntityName: EntityNames.alertNotificationEntity, in: context) {
let managedObj = NSManagedObject(entity: entity, insertInto: context)
managedObj.setValue(uid, forKey: CoreDataEntityKeys.AlertNotificationEntity.uid)
managedObj.setValue(status, forKey: CoreDataEntityKeys.AlertNotificationEntity.status)
do {
try context.save()
} catch {
print(error.localizedDescription)
}
}
}
Я не получаю никаких фатальных последствий, когда приходит уведомление и используется метод addEntity.
В моем appDelegate, когда я пытаюсь распечатать значения, он говорит, что он просто пуст.
Что я делаю не так? Невозможно ли совместно использовать CoreData между целевыми приложениями и целевыми расширениями службы?
Изменить: я должен добавить, что я уже пытался настроить то, что описано в разделе Как получить доступ к модели CoreData в сегодняшнем расширении (iOS)