UIDatePicker结果为dateByAddingTimeInterval

时间:2013-12-23 16:59:16

标签: ios iphone objective-c uidatepicker

我创建了一个带有每日提醒/通知的小型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 ,则通知将在给定时间内设置为今天。但是我需要在给定时间每隔一天发出通知,直到用户停止通知为止。

有没有人知道如何才能做到这一点?

1 个答案:

答案 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];