如何获取特定的通知计数

How to get particular notification count number

我有三类 UILocalNotification - 每个星期日、星期一和星期六通知。

如何获取特定通知,即周一触发计数。 我有一个通知 UILocalNotification(不是远程或推送通知)。

如何统计两个月内触发的周一通知?

注意:没有推送或远程通知的范围。

您必须手动管理它,我建议的方法是利用 AppDelegate 的 didReceiveLocalNotification 方法。执行此操作,然后检查 UILocalNotificationObjectfireDate 属性。您可以使用以下代码将其解析为星期几:

int dayOfWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:notification.fireDate];

然后您可以根据您拥有的数量将此值存储在 NSUserDefaults 中。 1 是星期一,2 是星期二,依此类推...

long dayOfWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:notification.fireDate];
long currentCount = [[NSUserDefaults standardUserDefaults] integerForKey:[NSString stringWithFormat:@"weekdayNotificationCount_%ld", dayOfWeek]];
[[NSUserDefaults standardUserDefaults] setInteger:currentCount + 1 forKey:[NSString stringWithFormat:@"weekdayNotificationCount_%ld", dayOfWeek]];

这样一来,您的 NSUserDefaults 中将始终存储 运行 总数,并且只有删除该应用程序后才会消失。