所以我目前有一个服务扩展设置,将数据写入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)
中列出的内容