nextTriggerDate() 不返回“预期”值,是否有其他方法来获取重复本地通知的下一个触发日期?

2023-12-07

在我的应用程序中,我允许用户安排重复的本地通知。我遇到的问题(基于环顾四周的任何其他问题)是 nextTriggerDate() 始终将其返回值基于当前时间而不是安排通知的时间。我看到了在通知的 userInfo 中存储“日期”值的建议,但从通知的重复方式来看,似乎无法在每次通知触发时保持该日期值的准确性。有没有办法获得重复本地通知的实际触发日期?

func getNotifications(completion: @escaping (Bool)->()){
    notificationArray.removeAll()

    center.getPendingNotificationRequests { (notifications) in
        print("Count: \(notifications.count)")
        if notifications.count <= 0{
            completion(true)
            return
        }
        for item in notifications {
            var nextTrigger = Date()

            if let trigger = item.trigger as? UNTimeIntervalNotificationTrigger{

                nextTrigger = trigger.nextTriggerDate()!

            }else if let trigger = item.trigger as? UNCalendarNotificationTrigger{

                nextTrigger = trigger.nextTriggerDate()!
            }
        }
    }
    completion(true)
}

确认的。我运行了这段代码:

let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 120, repeats: true)
print("scheduling at", Date())
DispatchQueue.main.asyncAfter(deadline: .now()+15) {
    print("checking at", Date())
    UNUserNotificationCenter.current().getPendingNotificationRequests {
        arr in let arr = arr
        if let req = arr[0].trigger as? UNTimeIntervalNotificationTrigger {
            let fd = req.nextTriggerDate()
            print("trigger date", fd as Any)
        }
    }
}
// ... proceed to configure and schedule the notification

我还配置了我的用户通知中心委托以在前台接收通知并打印时间。

这是我在控制台中看到的内容:

scheduling at 2018-08-01 03:40:36 +0000
checking at 2018-08-01 03:40:51 +0000
trigger date Optional(2018-08-01 03:42:51 +0000)
received notification while active 2018-08-01 03:42:36 +0000

因此,触发日期报告为 2 分钟后当我检查时,但通知实际上是在 2 分钟后触发的当我安排的时候.

我会把它描述为一个错误!

我对你原来的问题的一个不同意见是,我得到了完全相同的结果non-重复UNTimeIntervalNotificationTrigger:

scheduling at 2018-08-01 03:45:50 +0000
checking at 2018-08-01 03:46:06 +0000
trigger date Optional(2018-08-01 03:48:06 +0000)
received notification while active 2018-08-01 03:47:50 +0000

UNTimeIntervalNotificationTrigger 还有一个timeInterval属性,但即便如此,除非我们知道通知最初安排的时间,而且 UNNotificationRequest 无法提供任何方法来查明这一点。

(为了确定起见,我推迟了检查,直到重复通知触发了几次,但结果是相同的:nextTriggerDate明确添加了timeInterval to now而不是报告下次触发通知的时间。)

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

nextTriggerDate() 不返回“预期”值,是否有其他方法来获取重复本地通知的下一个触发日期? 的相关文章

  • 如何在 React Native 中构造 POST 请求主体,而不是使用字符串化的 json,而是使用 json?

    我正在努力用 React Native 替换一些本机代码 预期的 POST 请求 在AFNetworking in Charles应该是这样的 代码片段 NSError err NSData paramData NSJSONSerializ
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • AVAssetExportSession 为零 iPhone 7 - Plus 模拟器

    AVAssetExportSession在 iPhone 6 及以下版本上运行良好 但在 iPhone 7 iPhone 7 Plus 模拟器上运行不佳 Xcode 8 0 这段代码return nil在exportSession中 当在i
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • Swift 中的 import 语句是否有相关成本?

    阅读字符串宣言 我看到一个段落 https github com apple swift blob master docs StringManifesto md batteries included关于避免Foundation不需要的时候导
  • SwiftUI:发送电子邮件

    在正常情况下UIViewController在 Swift 中 我使用此代码发送邮件 let mailComposeViewController configuredMailComposeViewController mailCompose
  • 无法在 ios 应用程序中通过 googlecast 正确投射视频

    我正在开发一个基于 AVPlayer 的自定义视频播放器项目 尝试整合谷歌演员 我已经根据谷歌图进行了集成 https codelabs developers google com codelabs cast videos ios http
  • 错误消息:您输入的捆绑包 ID 已被使用

    我正在尝试发布一个 iPhone 应用程序 这不是第一个 我过去已经发表过其他的 因此 我在第一个和第二个表单中输入了所需的信息 然后填写了第三个大表单 您还可以在其中上传图标和屏幕截图 好吧 我在上传屏幕截图之前按下了 保存 按钮 因为我
  • 在 iOS 应用程序中拨打电话

    我有一些代码尝试在应用程序中进行调用 但它似乎不起作用 UIApplication myApp UIApplication sharedApplication NSString theCall NSString stringWithForm
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • $0 和 $1 在 Swift 闭包中意味着什么?

    let sortedNumbers numbers sort 0 gt 1 print sortedNumbers 谁能解释一下什么 0 and 1在斯威夫特中意味着什么 另一个样本 array forEach actions append
  • 将类型传递给通用 Swift 扩展,或者理想情况下推断它

    说你有 class Fancy UIView 你想找到所有兄弟姐妹Fancy意见 没问题 https stackoverflow com q 37232743 294884 for v UIView in superview subview
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • 我的 UICollectionView 无法使用 Swift 平滑滚动

    我有一个CollectionView它使单元出队取决于message类型 例如 文本 图像 我遇到的问题是当我向上 向下滚动时滚动确实很不稳定 因此用户体验不是很好 这仅在第一次加载单元格时发生 之后滚动就会平滑 我有什么想法可以解决这个问
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • 如何使用phonegap在iOS应用程序中防止键盘推送webview

    当屏幕底部的输入字段获得焦点时 键盘会向上推我的网络视图 并且页面的上部不再可见 我想防止键盘推高网络视图 有人有主意吗 对焦 设置window scrollTo 0 0 这可以防止键盘完全推高 webview input on focus
  • 根据内容自动更改单元格高度 - Swift

    在 Swift 中使用 UITableView 有人可以帮我根据标签 图片和描述自动更改单元格的高度吗 所有信息都正确传递 我只需要帮助格式化它 我尝试使用调整它cell frame size height 但这没有效果 我可以更改故事板中
  • 通过 Button Swift 中的标签发送行和部分

    我里面有这个cellForRowAtIndexPath cell plusBut tag indexPath row cell plusBut addTarget self action plusHit forControlEvents U

随机推荐

  • 嵌套集模型 PHP 库

    您好 我需要使用嵌套集模型来管理我网站上的产品类别 有谁知道一些好的预构建 PHP 库用于处理 MySQL 中的嵌套集 你可以尝试 Baobab 这是我最近发布的一个库 http www sideralis org baobab
  • 使用独立 NDK 工具链构建协议缓冲区

    我在使用 NDK build tools make standalone toolchain sh 脚本创建的独立 NDK 工具链构建 Android 协议缓冲区时遇到问题 我遇到的问题是这样的 libtool link g Wall Ww
  • 如何使用 ngFor ionic 隐藏未使用的项目?

    我试图从 ngFor 中隐藏未使用的项目 问题是 我确实成功隐藏了它 但它的位置仍然存在并且是空的 如下图所示 我的 ts 文件 coupon any couponz var data for let co of this shared c
  • 使用 lm() 和 Predict() 进行滚动回归和预测

    我需要申请lm 到我的数据框的扩大子集dat 同时对下一次观察进行预测 例如 我正在做 fit model predict dat 1 3 dat 4 dat 1 4 dat 5 dat 1 dat nrow dat 我知道我应该为特定子集
  • 我有一个 dd-mon-yyyy 格式的日期(字符串),我想将此日期与系统日期进行比较

    我在 字符串 中有一个 dd mon yyyy 格式的日期 我想将此日期与系统日期进行比较 例如 我的时间是 2010 年 10 月 12 日 我想将其与相同格式的系统日期进行比较 您可以使用SystemDateFormat例如 用于解析字
  • MySQL 显示状态 - 活动连接数还是总连接数?

    当我跑步时show status like Con 它显示了连接数 为 9972 并且还在不断增长 这是活跃连接数还是总连接数 根据the docs 表示历史上的总数 Connections 尝试连接 MySQL 服务器的次数 成功或失败
  • JavaScript:检测表单提交完成

    我在 iframe 中有一个表单并提交它 我如何知道提交何时完成 我正在使用 jQuery 提交表单 但不认为有回调 myForm submit 如何将事件附加到提交完成 提交表格会将您重定向到下一页 但你总是可以尝试ajax功能 http
  • ThreeJS - 如何将环境贴图应用到导入的 obj 模型?

    EDIT 我在这篇文章中找到了一个解决方案 如何将材质分配给 ColladaLoader 或 OBJLoader 我使用以下代码实现了允许我在导入的 obj 上使用 envMaterial 立方体贴图的效果 var loader new T
  • 如何使用selenium为firefox浏览器禁用通知

    我想在启动 Firefox 浏览器时完全禁用通知 对于不同的浏览器 驱动程序 需要设置不同的配置文件 选项 Firefox FirefoxProfile ffprofile new FirefoxProfile ffprofile setP
  • 与 NEON 内在函数的数据类型兼容性

    我正在使用来自 C 代码的 NEON 内在函数进行 ARM 优化 我理解并掌握了大部分打字问题 但我陷入了这一问题 指令vzip u8返回一个uint8x8x2 t值 实际上是两个数组uint8x8 t 我想将返回值分配给一个普通的uint
  • C# 泛型类中的协方差

    C 4 0 NET 4 5 Silverlight 5 看起来很奇怪 我找不到解决方案 所以需要一些帮助 我有基类 Base 和派生类 Child Base 我还有帮助程序类 它具有通用类型来执行特定工作 一个 EF 实体帮助程序 其中 T
  • 如何从文件路径中删除%20?

    file home ashu Music Collections randomPicks ipod 20on 20sep 2009 Coldplay Sparks mp3 如何转换像上面这样的字符串以获得可以传递到的正常文件路径open 功
  • 如何使用 mechanize 库执行 HEAD 请求?

    我知道如何使用 httplib 执行 HEAD 请求 但我必须对该站点使用 mechanize 本质上 我需要做的是从标头 文件名 中获取值 而不实际下载文件 有什么建议我可以如何实现这一点吗 Mechanize 本身仅发送 GET 和 P
  • 在 OfficeJS 中,您可以检索绑定对象的范围吗?

    针对 Word Online 但任何针对 Excel PPT 的指示也会有所帮助 本质上 是否可以将绑定对象内的文本视为范围 因此 能够选择全部并将插入符移动到开头 结尾 我设想代码具有以下效果 Office select myBindin
  • 如何从 python 中的另一个 .py 文件访问全局变量?

    我创建了两个文件 当我运行时a py 结果是 1 1 这是正确的 然而 运行b py 结果是没有 我如何获取请求的值b py a py requests def set value global requests requests 1 1
  • 创建一个大的虚拟文件

    我是这个社区的新手 也是 iOS 开发的新手 我希望有人能帮助我解决一些小问题 目前我正在为自己编写一个小应用程序 它应该创建一个非常大的虚拟文件 其中包含虚拟数据或单词或任何使它变大的东西 原因是 我想单击一个按钮 应用程序应该生成一个
  • 使用另一个 data.table 中的值更新 data.table 中的值

    我有一个包含大约 2500 万行的数据集 我正在获取这些行的子集并执行一个运行良好的函数 但是 我接下来需要做的是用新值更新原始数据集中的值 同时保留其余值 我确信这很简单 但我就是无法理解它 这是我正在处理的事情的简化版本 require
  • 无需 AJAX 将 JSON 文件从 jQuery 发送到 PHP

    所以 我是 javascript jquery 的新手 但我已经使用 PHP 足够长的时间了 我知道如何使用 PHP 从输入中获取数据 这非常简单 但是当尝试使用 jQuery 执行相同操作时 如何操作却超出了我的想象 现在我有这个脚本 还
  • JavaScript 中的 PMT

    我正在尝试编写与 EXCEL PMT 函数等效的代码 在 JavaScript 中 公式如下所示 function PMT ir np pv fv ir interest rate per month np number of period
  • nextTriggerDate() 不返回“预期”值,是否有其他方法来获取重复本地通知的下一个触发日期?

    在我的应用程序中 我允许用户安排重复的本地通知 我遇到的问题 基于环顾四周的任何其他问题 是 nextTriggerDate 始终将其返回值基于当前时间而不是安排通知的时间 我看到了在通知的 userInfo 中存储 日期 值的建议 但从通