如何记录本地通知所用的日期?

时间:2014-01-19 21:46:32

标签: ios objective-c cocoa-touch notifications

我正在尝试记录当天,但不是我的通知将会触发的日期。

说我有这个代码,我需要它在周日开火,这是我尝试过的,之后发生了什么:

-(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时,它才适用于我。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

它似乎不起作用,因为你没有设置年份,所以它默认为0001.不要只从当前日期开始NSWeekCalendarUnit,也要花一年时间。