gpt4 book ai didi

iOS:警报通知的公式

转载 作者:行者123 更新时间:2023-11-28 23:07:59 24 4
gpt4 key购买 nike

我正在尝试编写一个应用程序,它会在日期到来前 60 小时在通知中心向用户发送警报。这是代码:localNotif.fireDate = [eventDate dateByAddingTimeInterval:-60*60*60];

我想知道 -60*60*60 公式是否可以在日期前 60 小时提醒他们?我完全不确定这个公式是如何工作的,我想将它设置为在日期前 10 分钟提醒以进行测试,然后在我确认一切正确后将其更改回 60 小时。有谁知道用于这两者的公式吗?

非常感谢任何帮助,谢谢!

最佳答案

一种粗略但易于编码的方法是直接从 NSDate 中添加/减去秒数:

NSDate *hourLaterDate = [date dateByAddingTimeInterval: 60*60];
NSDate *hourEarlierDate = [date dateByAddingTimeInterval: -60*60];

您可以通过记录日期来查看它是如何工作的:

NSDate *now = [NSDate date];
NSDate *hourLaterDate = [now dateByAddingTimeInterval: 60*60];
NSLog(@"%@ => %@", now, hourLaterDate);

在这种方法中,日期被解释为自引用日期以来的秒数。所以,在内部它只是大量的 double 类型。

进行这些计算的代码繁琐但迂腐正确的方法是将日期解释为日历系统中表示的日期。实现与日历计算相同的结果:

NSDateComponents *hour = [[NSDateComponents alloc] init];
[hour setHour: 1];
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDate *hourLaterDate = [calendar dateByAddingComponents: hour
toDate: date
options: 0];
[hour release];
[calendar release];

这些计算考虑了时区、夏令时、闰年等。它们还可以在您计算的内容方面更具表现力。

在使用任何这些方法之前,您必须决定您到底需要什么:时间戳或完整的日历日期。

关于iOS:警报通知的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8955759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com