我无法显示本地通知。我在iphone上测试。它们根本不显示,生成的日期似乎是在输入之前一小时。 19变为18,依此类推。
如何在考虑用户时区的情况下在7处启用这些本地通知?
NSCalendar* myCalendar = [NSCalendar currentCalendar];
NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]];
[components setHour: 19];
[components setMinute:00];
NSDate *todayAt7 = [myCalendar dateFromComponents:components];
UILocalNotification *dailyNotification = [[UILocalNotification alloc] init];
dailyNotification.fireDate = todayAt7; // set this to 7pm
dailyNotification.timeZone = [NSTimeZone defaultTimeZone];
dailyNotification.repeatInterval = NSDayCalendarUnit;
dailyNotification.soundName = UILocalNotificationDefaultSoundName;
dailyNotification.alertBody = @"You need to enter data for today.";
答案 0 :(得分:1)
第一个问题是,当您创建组件实例时,您不需要小时和分钟组件。此外,您应该使用NSCalendar *myCalendar = [NSCalendar autoupdatingCurrentCalendar];
而不是currentCalendar。
第二个问题,至少你没有显示它的代码,但你实际上并没有安排通知对象。请参阅[UIApplication scheduleLocalNotification:]
。