获取现有 UILocalNotifications 的列表并修改其日期
Posted
技术标签:
【中文标题】获取现有 UILocalNotifications 的列表并修改其日期【英文标题】:Obtaining a list of existing UILocalNotifications and modifying their dates 【发布时间】:2013-07-29 12:52:11 【问题描述】:我正在尝试安排几个UILocalNotification
s,我需要访问已创建的通知。
是否可以创建所有UILocalNotification
s 的列表/数组?我可以编辑现有本地通知的触发日期吗?
这是我用于创建本地通知的代码:
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = pickerDate;
localNotification.alertBody = textFieldName.text;
localNotification.alertAction = @"Item date expired!";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
【问题讨论】:
【参考方案1】:您可以使用以下代码获取所有UILocalNotifications
UIApplication* objApp = [UIApplication sharedApplication];
NSArray* oldNotifications = [objApp scheduledLocalNotifications];
您也可以使用以下代码取消该通知..
if ([oldNotifications count] > 0)
[objApp cancelAllLocalNotifications];
还可以从下面的链接中查看一个带有UILocalNotification
教程的基本演示
iphone-programming-tutorial-local-notifications
【讨论】:
【参考方案2】:检索当前通知
NSArray *currentNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
编辑该数组的内容(您可能必须先创建一个可变副本),然后使用
[[UIApplication sharedApplication] setScheduledLocalNotifications:myNotifications];
myNotifications 包含旧的待处理通知和您的新通知,它将覆盖旧值,因此通过编辑此数组中 UILocalNotification 对象的 fireDate,您可以更改它们将被触发的日期。
【讨论】:
【参考方案3】:我想你想要这个。
[[UIApplication sharedApplication] scheduledLocalNotifications]
【讨论】:
【参考方案4】:是的,您可以从以下语句中获取所有本地通知列表:
[[UIApplication sharedApplication] scheduledLocalNotifications];
对于编辑,我没有尝试过,但是可以修改通知的触发日期。 但我的建议是,获取通知的所有其他详细信息并删除并重新创建新通知。
谢谢
【讨论】:
以上是关于获取现有 UILocalNotifications 的列表并修改其日期的主要内容,如果未能解决你的问题,请参考以下文章
UILocalNotifications 和 applicationIconBadgeNumber 的良好模式
如何将 UILocalNotifications 添加到数组 [关闭]