有什么错我的通知码?(What's Wrong with my notification c

2019-08-06 05:44发布

注意:下面有一个更新。

我问在有关指定一分钟时间,每小时重复间隔前面的问题。 不过,我有两个答案,问我去尝试的日期分量,我做到了。 这里是:

[[UIApplication sharedApplication] cancelAllLocalNotifications];
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar] ;
NSDateComponents *componentsForReferenceDate = [[NSDateComponents alloc] init];
[componentsForReferenceDate setHour:hour];
[componentsForReferenceDate setMinute:0];
[componentsForReferenceDate setSecond:0];

 NSDate *fireDateOfNotification = [calendar dateFromComponents: componentsForReferenceDate];
 // Create the notification
 UILocalNotification *notification = [[UILocalNotification alloc] init] ;

 notification.fireDate = fireDateOfNotification;
 notification.timeZone = [NSTimeZone localTimeZone] ;
 notification.alertBody = [NSString stringWithFormat: @"You are missed!"] ;
 notification.alertAction = @"View";
 notification.userInfo= [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Some information"] forKey:@"information"];
 notification.repeatInterval= NSHourCalendarUnit ;
 notification.soundName = @"Appnotifisound.wav";
 notification.applicationIconBadgeNumber = 1;
 [[UIApplication sharedApplication] scheduleLocalNotification:notification] ;

该代码在我看来,正确的,它应该工作,因为我已经告诉它应该在每一个小时开始解雇的通知。 然而,它没有! 该代码是完整的,我已经设置了属性和合成它的权利,即使在NSCalendar是存在的。 它建立并运行完美,但是,它永远不会触发一个通知每隔一小时对我的模拟器!? 我只是无法得到什么,似乎是错误的。 请让我知道,如果你需要了解更多信息或者复制该代码的其他地方,帮我找到缺少了什么。 谢谢。

更新:这是我如何编码的小时,如果它可能是问题..

NSCalendar *calendar1 = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar1 components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:[NSDate date]];
hour = [components hour];
min =[components minute];
sec =[components second];
NSLog(@"hour is %i",hour);

NSLog(@"min is %i",min);

NSLog(@"sec is %i",sec);
 if (hour < 24) {
     hour=hour+1;
     } else {
         hour=0;

Answer 1:

东西难倒我:你不会看到通知而应用程序是在前台。 你需要打在模拟器home键把应用程序进入后台或其他人,看到的东西,而应用程序是活跃,实现应用程序的委托协议方法:( - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification在您的应用程序,使该方法显示的东西。



Answer 2:

这对我的作品时,我复制此代码,但我不设置你的声音,你还没有表现出你如何设置“小时”,所以我硬编码了。 这里是输出。

2013年1月9日17:57:17.968 TestStackOverflow [3322:11303] fireDate = 0001-01-01 6点17分32秒0000 2013年1月9日17:57:17.993 TestStackOverflow [3322:11303] +++ scheduledLocalNotifications (“{火日期=星期一,1月1日1日,上午1点○○分00秒GMT-05:17:32,时区=美国/多伦多(EST)偏移-18000,重复间隔= NSHourCalendarUnit,重复计数= UILocalNotificationInfiniteRepeatCount,未来火日期=周三,2013年1月9日,下午6时17分32秒美国东部标准时间,用户信息= {信息\ n = \ “的一些信息\”; \ n}}”



文章来源: What's Wrong with my notification code?