我创建了一个带有每日提醒/通知的小型iOS应用。用户能够选择他/她将被通知的小时(和分钟)。到目前为止,一切正常。如果我将间隔设置为1分钟进行测试,则会显示通知。
NSDate *scheduled = [[NSDate date] dateByAddingTimeInterval:60*1];
NSDictionary* dataDict = [NSDictionary dictionaryWithObjectsAndKeys:scheduled,@"remindMe",@"Background Notification received",@"notifyMe",nil];
[self scheduleNotificationWithItem:dataDict];
但是我没有在 UIDatePicker 中添加小时和分钟。如果我使用 reminderTime.date ,则通知将在给定时间内设置为今天。但是我需要在给定时间每隔一天发出通知,直到用户停止通知为止。
有没有人知道如何才能做到这一点?
答案 0 :(得分:1)
您可以使用NSDateComponents
执行此任务。添加一天(明天)并适当设置小时和分钟。
示例:
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:unitFlags fromDate:[NSDate date]];
components.day += 1;
components.hour = 14; // replace this with the value from your picker
components.minute = 30; // replace this with the value from your picker
NSDate *alertDate = [calendar dateFromComponents:components];