UILocalNotification 触发日期计算

Posted

技术标签:

【中文标题】UILocalNotification 触发日期计算【英文标题】:UILocalNotification fire date computation 【发布时间】:2014-05-27 15:36:26 【问题描述】:

我无法触发UILocalNotification

我有一个 1 到 30 的用户输入,我想用它来为UILocalNotification 设置为firedate

例如,用户选择了 5。我想在当前日期后 5 天设置其 firedate。你是怎么计算的?

谢谢。

这是我到目前为止所做的......使用它只需要几秒钟......

notification.fireDate = [[NSDate date] dateByAddingTimeInterval:self.daysBeforeNotification];

【问题讨论】:

你有没有研究或尝试过什么? 显示您的尝试,以便我们帮助您找到问题。 查看:-[NSCalendar dateByAddingComponents] 嗨@SimonMcLoughlin,我只尝试过notification.fireDate = [[NSDate date] dateByAddingTimeInterval:self.daysBeforeNotification];,但它只持续了几秒钟.. @pretty_pau .... 你告诉我你不知道如何在几秒钟内通过 x 天???? 【参考方案1】:

您可以使用NSCalendarNSDateComponents 来完成此操作。

NSInteger daysToAdd = 5;
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:daysToAdd];
NSDate *newDate = [[NSCalendar currentCalendar] dateByAddingComponents:comps toDate:currentDate  options:0];

【讨论】:

嘿@Dima 感谢您的帮助。会试试这个。非常感谢。 正如 cmets 中有人在您的问题中提到的那样,您也可以使用您尝试过的方法。您只需将天数乘以其他单位即可得到秒数(天 * 60 * 60 * 24) 嗨@Dima,是的,谢谢它的工作。你能帮我解决我的另一个问题吗?我需要练习的是,我怎么知道何时在两个给定之间设置 firedate。例如。我将目标日期设置为 2014 年 6 月 1 日,并且在触发 fireate 之前我还有另一个输入天数,例如我将设置为在目标日期前 1 天或 2 天触发。如何使用 NSTimeInterval 做到这一点? :) 您的问题对我来说并不完全清楚,但无论如何,您需要提出一个新问题来提出这个问题。

以上是关于UILocalNotification 触发日期计算的主要内容,如果未能解决你的问题,请参考以下文章

UILocalNotification 不会触发

UILocalNotification 多次触发

当我打开通知托盘查看通知时 UILocalNotification 触发

UILocalNotification 结束日期

如何在给定的 NSDate 前两天触发 UILocalNotification?

即使将 repeatInterval 设置为工作日后,UILocalNotification 也会每天触发