服务扩展写入核心数据但在应用程序中找不到任何内容

时间:2018-03-16 23:03:08

标签: ios swift swift4 xcode9 xcode9.2

所以我目前有一个服务扩展设置,将数据写入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中,当我尝试打印出值时,它说它只是空的。

我做错了什么?是否无法在Applications目标和服务扩展目标之间共享CoreData?

编辑: 我应该补充一点,我已经尝试设置How to access CoreData model in today extension (iOS)

中列出的内容

1 个答案:

答案 0 :(得分:0)

可以使用App group共享应用和扩展程序之间的数据/文件。 查看Share data between app and extension