5

我正在尝试安排几个UILocalNotifications,并且我需要访问已经创建的通知。

是否可以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;
4

4 回答 4

14

你可以UILocalNotifications用下面的代码得到所有

UIApplication* objApp = [UIApplication sharedApplication];
NSArray*    oldNotifications = [objApp scheduledLocalNotifications];

您也可以使用以下代码取消该通知..

if ([oldNotifications count] > 0)
    [objApp cancelAllLocalNotifications];

UILocalNotification还可以从下面的链接中查看一个带有教程的基本演示

iphone 编程教程本地通知

于 2013-07-29T13:00:58.753 回答
6

检索当前通知

NSArray *currentNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];

编辑此数组的内容(您可能必须先创建一个可变副本),然后使用

[[UIApplication sharedApplication] setScheduledLocalNotifications:myNotifications];

myNotifications 包含旧的待处理通知和新通知,它将覆盖旧值,因此通过编辑此数组中 UILocalNotification 对象的 fireDate ,您可以更改它们将被触发的日期。

于 2013-07-29T12:59:08.010 回答
4

我想你想要这个。

[[UIApplication sharedApplication] scheduledLocalNotifications]
于 2013-07-29T12:59:10.817 回答
1

是的,您可以从以下声明中获取所有本地通知列表:

    [[UIApplication sharedApplication] scheduledLocalNotifications];

并且对于编辑,我没有尝试过,但是可以,可以修改通知的触发日期。但我的建议是,获取通知的所有其他详细信息并删除并重新创建新通知。

谢谢

于 2013-07-29T13:00:26.637 回答