项目未从共享扩展记录到 CoreData

Item is not recorded to CoreData from Share Extension

我确实创建了 共享扩展。使用此扩展,我正在尝试将新项目插入 CoreData。代码如下。创建变量 contextdocumentcontext.save() 没有失败。使用 main/host 应用程序插入 CoreData 工作正常并呈现给 UI.

我注意到的另一件事是,Share Extension 中的所有插入都存储在其他地方,但不在主应用程序中。看起来这些项目没有合并到主要的 CoreData 中。

为什么我的项目插入到 CoreData throw Share Extension 没有合并到主 CoreData?

let context = CoreDataStackManager.sharedManager.persistentContainer.viewContext
let document = SGDocument(context: context)
document.name = "Document Name"
do {
    try context.save()
} catch {
    fatalError("Unresolved error \(error)")
}

PS: Here 是类似的问题,但没有答案。

我找到了解决方案。

// In the extension I am setting that VC needs to be updated/refreshed.
UserDefaults.group.set(true, forKey: .udRefreshDocumentsVC)

// In the view controller adding listener for application will enter foreground.
NotificationCenter.default.addObserver(forName: .UIApplicationWillEnterForeground, object: nil, queue: nil, using: applicationWillEnterForeground)

// In the applicationWillEnterForeground method do reload.
    func applicationWillEnterForeground(notification: Notification) {
        if UserDefaults.group.bool(forKey: .udRefreshDocumentsVC) {
            _fetchedResultsController = nil
            tableView.reloadData()
            UserDefaults.group.set(false, forKey: .udRefreshDocumentsVC)
        }
    }