Расширение службы записывает в основные данные, но в приложении ничего не найдено

Итак, в настоящее время у меня есть настройка расширения службы, которая записывает данные в 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)


person sbrioux    schedule 16.03.2018    source источник


Ответы (1)


Данные/файлы между приложением и расширением могут быть переданы с помощью группы приложений. Установите флажок Обмен данными между приложениями и расширение

person Inquisitive-NJ    schedule 17.03.2018
comment
Группы приложений уже настроены, и совместное использование UserDefaults между двумя целями (основное приложение и NSE) работает, но НЕ CoreData. - person sbrioux; 18.03.2018