我正在尝试记录当天,但不是我的通知将会触发的日期。
说我有这个代码,我需要它在周日开火,这是我尝试过的,之后发生了什么:
-(void) Sunday { // 9th Notification Every 1:35
NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
NSDateComponents *components = [calendar components:NSWeekCalendarUnit fromDate:[NSDate date]];
components.weekday = 1;
components.hour = 22;
components.minute = 38;
components.second = 25;
NSDate *fire = [calendar dateFromComponents:components];
NSLog(@"The Fire day is:: %@", fire);
UILocalNotification *notif = [[UILocalNotification alloc] init] ;
if (notif == nil)
return;
notif.fireDate = fire;
notif.repeatInterval= NSWeekCalendarUnit ;
notif.soundName = @"ring.wav";
notif.alertBody = [NSString stringWithFormat: @"THANKS for Your HELP :)"] ;
[[UIApplication sharedApplication] scheduleLocalNotification:notif] ;
}
,日志显示:
2014-01-19 22:37:45.470 daily notification test[15595:c07] The Fire day is:: 0001-01-21 22:38:25 +0000
我只是尝试在一周中的每个特定日期触发通知,而不管月份和年份......但只有在定义小时并使用NSHourCalendarUnit
时,它才适用于我。
感谢您的帮助。
答案 0 :(得分:0)
它似乎不起作用,因为你没有设置年份,所以它默认为0001.不要只从当前日期开始NSWeekCalendarUnit
,也要花一年时间。