我正在试图找出一旦用户达到目标后如何制作警报弹出窗口。但是,我只希望它在被触发后每天显示一次。提前道歉。如果我的逻辑解决了这个问题。
// Check to see if hydration goal has been reached
if (waterCups >= dailyHydrationGoal) {
// User has reached goal
if (alert has not been fired yet today) {
// alert pop up you reached your goal!
}
}
我如何确保每天只发布一次?
答案 0 :(得分:3)
您可以使用isDateInToday:
方法检查指定日期是否在“今天”。
NSDate *lastAlertDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"lastAlertDate"];
if(![[NSCalendar currentCalendar] isDateInToday:lastAlertDate]){
//Show alert
NSDate *today= [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:today forKey:@"lastAlertDate"];
}
答案 1 :(得分:1)
你有持久性商店吗? (NSUserDefaults,核心数据等......)
您可以存储上次显示警报时的时间戳(NSDate),然后检查上次显示警报是否为今天。 How to determine if an NSDate is today?
如果今天未显示警报,请弹出警报并记录新的时间戳。