我有三类 UILocalNotification
- 每个星期日、星期一和星期六通知。
如何获取特定通知,即周一触发计数。
我有一个通知 UILocalNotification
(不是远程或推送通知)。
如何统计两个月内触发的周一通知?
注意:没有推送或远程通知的范围。
最佳答案
您必须手动管理它,我建议这样做的方法是利用 AppDelegate 的 didReceiveLocalNotification
方法。实现它,然后检查 UILocalNotificationObject
的 fireDate
属性。您可以使用以下代码将其解析为星期几:
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
中存储一个运行总计,并且只有在删除应用程序时才会消失。
关于ios - 如何获取特定的通知计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41237586/