如何每天显示一次提醒

时间:2017-06-30 19:07:10

标签: ios objective-c

我正在试图找出一旦用户达到目标后如何制作警报弹出窗口。但是,我只希望它在被触发后每天显示一次。提前道歉。如果我的逻辑解决了这个问题。

// 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!
    }
}

我如何确保每天只发布一次?

2 个答案:

答案 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?

如果今天未显示警报,请弹出警报并记录新的时间戳。