收到远程通知后重新加载/刷新场景 swiftUI

2024-01-16

我有这个问题。我在 AppDelegate 中使用 application:didReceiveRemoteNotification 收到来自 CloudKit 的通知。我能够接收 recordId、获取它并成功保存它。问题是,场景没有刷新。

final class UserData: ObservableObject {
@Published var items: [Item] = []

func saveFetchedItem(recordId: CKRecord.ID, reason: CKQueryNotification.Reason) {
    fetchAndSaveRemoteDataFromCloudKit(recordId: recordId, reason: reason, userData: self)
  }
}

在应用程序委托中:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
   let notification: CKNotification = CKNotification(fromRemoteNotificationDictionary: userInfo)!

   if notification.notificationType == .query {
      let queryNotification = notification as! CKQueryNotification
      let recordId = queryNotification.recordID                

       let reason: CKQueryNotification.Reason = queryNotification.queryNotificationReason
        /// reasons:
        /// .recordCreated, .recordUpdated, .recordDeleted
        UserData().saveFetchedItem(recordId: recordId!, reason: reason)

        }
        completionHandler(.newData)
    }

在 fetchAndSaveRemoteDataFromCloudKit 中,我传递 UserData 以保存收到的项目并且它可以工作。问题是,我在列表上显示项目,但列表不会刷新,即使我打印 userData.items 并且新项目就在那里。

AppDelegate 和 SceneDelegate 之间是否存在连接以刷新场景/窗口?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

收到远程通知后重新加载/刷新场景 swiftUI 的相关文章

随机推荐

  • 如何在 Internet Explorer 中创建跨域 XMLHTTPRequest

    我的代码如下所示 推荐在 IE 下运行 但仅在 Chrome 和 FF 下运行 是否有正确的方法从另一个域访问 url 此外 该域是我拥有的域 可以允许访问尝试访问它的脚本
  • 如何检测 Topshelf 是否在控制台模式下运行

    我将 Topshelf 与 FluentSchedule 结合用于 Windows 服务 但是 我希望能够试运行应用程序以简单地启动而不是执行设置计时器等的 FluentSchedule 代码 从命令行运行 exe 文件 即没有 安装 命令
  • 在 PHP 中打印多维数组的单个值

    我正在使用以下数组 Array 0 gt Array id gt 6 key gt SITE NAME value gt Webg Smarty CMS Small name gt general title gt website name
  • ConstraintLayout - 如何垂直对齐两个视图的中心

    我有两个视图 A 和 B 它们有不同的高度 如何在内部垂直对齐这些视图的中心ConstraintLayout 例如 在下面的 XML 中 我想要中心img change picture与中心对齐txt change picture
  • 在用户空间处理 GPIO ARM9 嵌入式 Linux AM1808

    我必须将我的 GSM 模块与基于 ARM9 的 AM1808 连接起来 我已将所有 GPIO 引脚分配给 Da850 c 以及 mux h 文件 我成功创建了一个 uImage 并将该图像插入到我的 Flash 中 我需要处理用户应用程序中
  • 如何从 PDF 文档中提取表格?

    我正在尝试从 PDF 文档中提取表格 example http www nea org np images supportive docs 55082070 3 19 pdf 它不是扫描 图像 因此请关注非 OCR 解决方案 OCR表格提取
  • 创建样式节点、添加innerHTML、添加到DOM、以及IE令人头疼的问题

    我有一个由两部分组成的问题 一 场景 由于我们在移动浏览器对 NOSCRIPT 的支持方面遇到了一些奇怪的问题 我的任务是提出一种替代解决方案来 检测 JS 解决方案逻辑是页面上有两个 DIV 一种是错误提示你没有 JS 并且默认显示他 如
  • Virtualenv 说“root”而不是 virtualenv 的名称?

    一段时间以来 我一直在许多 python 项目中使用 virtualenv 当我尝试激活我的 virtualenv 之一时 我输入 source venv bin activate 这通常可以达到目的 但是 我的命令提示符不是这样说的 ve
  • 无法运行 ipad 应用程序 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我需要一些帮助 我从 App Store 免费 下载了一个 ipad 应用程序 现在我想在任何模拟器上运行该应用程序 我尝试了很多模拟器 但都失败了
  • 获取 MP4 流长度

    我正在一个应用程序中工作 我们使用 IMediaDet 来获取流长度 现在我们开始使用 MP4 容器 问题是 当我尝试使用 MP4 文件使用 IMediaDet put fileName 时 我得到 HRESULT 2147024770 E
  • 如何从 openlibrary api 解析 Json 数据? (适当地)

    如果这个问题已经得到解答 请原谅我 我看到了有关 json 数据和 openlibrary 的各种答案 到目前为止 我从 openlibrary 获取的 json 数据和我在示例中看到的 json 数据似乎格式不同 我的问题是 使用 php
  • 使用“AUTO”策略时使用 Doctrine 显式设置 Id

    我的实体使用此注释作为其 ID orm Id orm Column type integer orm GeneratedValue strategy AUTO protected id 我从一个干净的数据库导入旧数据库中的现有记录并尝试保留
  • Athena 在 S3 上查询数据的替代方案

    我身边有300 GBs的数据S3 假设数据如下 S3 Bucket Country Month Day 1 csv S3 Countries Germany 06 01 1 csv S3 Countries Germany 06 01 2
  • 解释一下这个 UTF-8 检测正则表达式

    这个问题询问如何检测 UTF 8 字符串 如何检测是否必须对字符串应用 utf8 解码或编码 https stackoverflow com questions 4407854 解决方案是这样的 if preg match u string
  • Laravel .htaccess 子文件夹

    我现在已经安装了具有默认文件夹结构的 Laravel 在我的根文件夹中 有一个像这样的 htaccess 文件 Options FollowSymLinks
  • 将元素添加到 rxjsBehaviorSubject 或 Angular2+ 中数组的主题

    我正在阅读本教程的 不相关组件 与服务共享数据 部分 了解如何在 Angular 中的不相关组件之间共享数据here https angularfirebase com lessons sharing data between angula
  • 删除 Chrome 中音频播放器的最大宽度

    我希望默认的 HTML5 音频播放器适合其父容器的宽度 我将其显示设置为 块 宽度设置为 100 然而 Chrome 似乎在超过一定的窗口大小后开始在左侧和右侧添加填充 Firefox 的行为符合我的预期 播放器的边缘恰好到达父 div 的
  • 如何编写多行字符串文字

    有没有办法在 C 中使用 Perl 那样的多行纯文本 常量文字 也许有一些解析技巧 include正在读取一个文件 我知道你可以用 C 11 中的原始字符串来做到这一点 嗯 有点 最简单的方法是仅使用相邻字符串文字由编译器连接的事实 con
  • 关于 Team Foundation 中的功能和积压项目,Epics 是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 From 这个链接 https stackoverflow com questions 16698363 difference betwe
  • 收到远程通知后重新加载/刷新场景 swiftUI

    我有这个问题 我在 AppDelegate 中使用 application didReceiveRemoteNotification 收到来自 CloudKit 的通知 我能够接收 recordId 获取它并成功保存它 问题是 场景没有刷新