服务扩展写入核心数据,但在应用程序中找不到任何内容
Posted
技术标签:
【中文标题】服务扩展写入核心数据,但在应用程序中找不到任何内容【英文标题】:Service extension writing to core data but nothing found in app 【发布时间】:2018-03-16 23:03:07 【问题描述】:所以我目前有一个将数据写入 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】:应用程序和扩展程序之间的数据/文件可以使用应用程序组共享。 检查Share data between app and extension
【讨论】:
已经设置了应用组,并且两个目标(主应用和 NSE)之间的 UserDefaults 共享正在工作,但 CoreData 却没有。以上是关于服务扩展写入核心数据,但在应用程序中找不到任何内容的主要内容,如果未能解决你的问题,请参考以下文章
Windows MongoDB - 已安装的Compass但在系统中找不到Compass