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

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 却没有。

以上是关于服务扩展写入核心数据,但在应用程序中找不到任何内容的主要内容,如果未能解决你的问题,请参考以下文章

IF FIND 函数在 vba 中找不到任何内容

当核心数据中找不到相关实体时,无法识别的选择器发送到实例

Windows MongoDB - 已安装的Compass但在系统中找不到Compass

获取 `favicon.ico` 错误,但在代码中找不到

pear DB 错误:在 windows 7 apache 服务器中找不到扩展名 sql server

安全规则中的 Firebase 速率限制?