相关疑难解决方法(0)

iOS - 通知今天扩展主应用程序中的核心数据更改

我有一个在主机应用程序和今天扩展之间共享的NSManagedObject调用Event。(在 Target Membership 中,主应用程序和小部件都被选中)。

宿主应用程序和小部件具有相同的应用程序组标识符并共享Data Model(在目标会员中,主应用程序和小部件都被选中)。

当我在 Xcode 中启动(运行)小部件时,它会显示Event已保存在主机应用程序中的所有应用程序事件 ( )。但是,当我添加新事件时,它会出现在主机应用程序中,但不会出现在今天的小部件中。如果我重新启动小部件,则会显示所有事件,包括之前未显示的最后一个事件。

这是获取事件的方法。它是在TodayViewController小部件中定义的。

private  func fetchEvents(date: Date) {
    let predicates = NSCompoundPredicate(andPredicateWithSubpredicates: [
        NSPredicate(format: "date = %@",Date().startOfDay as CVarArg),
        NSPredicate(format: "startTime >= %@", Date() as CVarArg)
    ])
    if let ev  = try? TPEvent.fetchAll(predicates: predicates, in: persistentManager.context) {
        events = ev
    }
} 
Run Code Online (Sandbox Code Playgroud)

此事件在viewWillAppear和 中调用widgetPerformUpdate

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    fetchEvents(date: Date())
    self.tableView.reloadData()
}


func widgetPerformUpdate(completionHandler: …
Run Code Online (Sandbox Code Playgroud)

core-data ios swift today-extension

6
推荐指数
1
解决办法
936
查看次数

标签 统计

core-data ×1

ios ×1

swift ×1

today-extension ×1