1

所以我的应用程序已经存在 5 天了,iPhone 3GS 用户报告说当按钮切换时他们的通知没有取消。该按钮执行以下代码:

[[UIApplication sharedApplication] cancelAllLocalNotifications]; 

但是,此代码适用于 iPhone 4、iPhone 4S、iPhone 5 和 iPad。这是 iPhone 3GS 的已知错误吗?或者 3GS 是否需要不同的代码来实现相同的功能?

4

2 回答 2

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");
}
于 2014-11-03T04:16:13.457 回答
0

不知道为什么,但我不得不通过通知 ID 而不是 iPhone 3GS 上的 CancelAll 取消所有通知

于 2012-11-20T19:48:27.213 回答