2

通知センターから通知を削除しようとしています。別のstackoverflowユーザーから提供された次のコードを見つけました:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];

そのコードを以下の AppDelegate.m に追加してみました

applicationWillEnterForeground

しかし、通知センターからの通知をタップしても、通知センター自体で消えません。

私は何を間違っていますか?将来の通知を事前にスケジュールしているため、「CancelAllNotifications」を使用できません。

4

1 に答える 1

3

私のテストから、呼び出しに加えて、既存のローカル通知をキャンセルする必要があるようですsetApplicationIconBadgeNumber:

今後の通知をシステムに保持したいので、単純なキャンセルを行うだけでは明らかに機能しません。したがって、私がとる戦略は、これらの残りの通知を新しい配列に追加し、その配列を のコレクションとして再設定するscheduledLocalNotifications. ことです。コレクションを読み取ってから再設定するのは少し奇妙に思えるかもしれませんが、プロパティを設定すると、最初scheduledLocalNotificationsに呼び出されますcancelLocalNotification:...これはまさに私たちがやりたいことです。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
NSArray *notifications = [UIApplication sharedApplication].scheduledLocalNotifications;
[UIApplication sharedApplication].scheduledLocalNotifications = notifications;
于 2012-11-26T17:48:21.160 に答える