是否有可能做到这一点? 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/