所以我的应用程序已经存在了5天,iPhone 3GS用户报告说切换按钮时他们的通知没有取消。 该按钮执行以下代码:
[[UIApplication sharedApplication] cancelAllLocalNotifications];
但是,此代码适用于iPhone 4,iPhone 4S,iPhone 5和iPad。 这是iPhone 3GS的已知错误吗?或者3GS需要不同的代码来实现同样的目标吗?
答案 0 :(得分:1)
我在iPhone 6+上的iOS 8.1上遇到了这个问题。事实证明,cancelAllLocalNotifications不是同步调用,因此无法保证取消时取消已完成。我必须实现以下作为解决方法
- (void) clearNotifications
{
NSLog(@"Clearing notifications");
[[UIApplication sharedApplication] cancelAllLocalNotifications];
long count;
while ((count = [[[UIApplication sharedApplication] scheduledLocalNotifications] count]) > 0) {
NSLog(@"Remaining notificaitons to cancel: %lu",(unsigned long)count);
[NSThread sleepForTimeInterval:.01f];
}
NSLog(@"Notifications cleared");
}
答案 1 :(得分:0)
唐不知道为什么但我必须通过通知ID取消所有通知,而不是取消iPhone 3GS上的CancelAll