UILocal 通知未显示
Posted
技术标签:
【中文标题】UILocal 通知未显示【英文标题】:UILocal notifications not showing 【发布时间】:2012-02-22 19:10:13 【问题描述】:我无法显示本地通知。我在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.";
【问题讨论】:
【参考方案1】:第一个问题是,当您创建组件实例时,您并没有要求小时和分钟组件。此外,您应该使用NSCalendar *myCalendar = [NSCalendar autoupdatingCurrentCalendar];
而不是 currentCalendar。
第二个问题,至少你没有显示它的代码,但你实际上并没有安排通知对象。见[UIApplication scheduleLocalNotification:]
。
【讨论】:
我确实没有安排!即使在询问小时后,我仍然遇到小时差的问题: NSDateComponents* components = [myCalendar components:(NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit) fromDate:[NSDate date]]; 试试NSCalendar *myCalendar = [NSCalendar autoupdatingCurrentCalendar];
ok 现在似乎可以工作,即使在日期的 NSLog 中它显示的时间比组件中输入的时间早一个小时。很奇怪。以上是关于UILocal 通知未显示的主要内容,如果未能解决你的问题,请参考以下文章