scheduledLocalNotifications

scheduledLocalNotifications

是否有可能做到这一点? UIApplication's scheduledLocalNotifications似乎没有返回已经传递到用户通知中心的通知,因此我认为这可能是设计使然,但我找不到任何有据可查的证据。

有人知道吗

谢谢!

编辑:发现了这一点:



此处:http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html

但是,如果scheduledLocalNotifications没有给我已经发出的通知,我如何获得对已经发出的通知的引用?

编辑2:

在注册一些通知后,这就是我要尝试做的事情:

UIApplication *app = [UIApplication sharedApplication];

for (UILocalNotification *localNotification in app.scheduledLocalNotifications)
{
     if (someCondition) {
            [app cancelLocalNotification:localNotification];
        }
     }
}

问题在于,一旦交付它们,它们就不再处于“scheduledLocalNotifications”中。

最佳答案

您可以通过将新创建的通知添加到自己的NSMutableArray通知中并检查该数组而不是app.scheduledLocalNotifications来解决此问题。
像这样的东西:

NSMutableArray添加到您的Viewcontrollers .h文件中:

NSMutableArray *currentNotifications;

在启动ViewController时启动它
currentNotifications = [[NSMutableArray alloc] init];

启动通知时,也将其添加到您的数组中:
UILocalNotification *notification = [[UILocalNotification alloc] init];
...
[currentNotifications addObject:notification];
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];

以后,当您想取消该通知时,请在您的数组中查找它。
还要从数组中删除它:
for (UILocalNotification *notification in currentNotifications) {
    if (someCondition) {
        [[UIApplication sharedApplication] cancelLocalNotification:notification];
        [currentNotifications removeObject:notification];
    }
}

关于ios - 取消已交付的UILocalNotification?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10652274/

10-14 23:15