0
Я прошел сегодняшнюю дату и время до текущего времени. Тем не менее, он запускается мгновенно по мере выполнения кода.UILocalNotification стрельба мгновенно
Он дает правильный результат в журналах.
localNotification <UIConcreteLocalNotification: 0x7a8cc990>{
fire date = Tuesday, 21 June 2016 at 12:30:00 PM GMT, time zone = GMT (GMT) offset 0, repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Tuesday, 21 June 2016 at 12:30:00 PM Eastern Daylight Time, user info = {
"FIRE_TIME_KEY" = "2016-06-21 12:30:00 +0000";
NotifySound = Default;
"Program_Id" = 1114;
"Program_Name" = "Nutrition For Ch1";
notification = Start;
}}
Вот мой код:
NSDate *date = [NSDate date];
NSDateFormatter *format = [[NSDateFormatter alloc]init];
[format setDateFormat:@"yyyy-MM-dd"];
NSString *strDt = [format stringFromDate:date];
NSString *strDate = [NSString stringWithFormat:@"%@ %@",strDt,strStartSelectedDateTime];
date = [formater dateFromString:strDate];
NSDictionary *dataDict = [NSDictionary dictionaryWithObjectsAndKeys:date,@"FIRE_TIME_KEY",
[[remainingScheArr valueForKey:kUser_Program_Mst_Program_Id] objectAtIndex:h],kUser_Program_Mst_Program_Id,
[NSString stringWithFormat:@"%@ For %@",[[remainingScheArr valueForKey:kProgram_Mst_Program_Name] objectAtIndex:h],
[[NSUserDefaults standardUserDefaults]valueForKey:kSelected_Student]],kProgram_Mst_Program_Name,
@"Start",@"notification",
strNotifySoundPath,@"NotifySound",
nil];
[self performSelector:@selector(scheduleNotificationWithItem:andRepeatInterval:) withObject:dataDict withObject:nil];
- (void)scheduleNotificationWithItem:(NSDictionary*)item andRepeatInterval:(NSCalendarUnit)CalUnit
{
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [item valueForKey:@"FIRE_TIME_KEY"];
localNotification.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
localNotification.alertBody = [NSString stringWithFormat:@"Remember: %@ starts at %@.",value,value];
localNotification.alertAction = NSLocalizedString(@"View Details", nil);
localNotification.userInfo = item;
localNotification.repeatInterval = CalUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
NSLog(@"localNotification %@",localNotification);
}
Это не дает каких-либо ошибок. Он успешно стреляет, но не в запланированное время, только при выполнении кода, который он стреляет.
'YYYY', а не' yyyy'? Я ожидаю, что преобразование строки в дату будет нарушено или что-то в этом роде. Примечания: 1) Вы не проверяете и не сообщаете об ошибках. 2) Ваш код слишком сложный. Например, вы создаете объект 'date', который является субоптимальным. – Droppy
http://stackoverflow.com/questions/25948037/ios-8-uiapplication-sharedapplication-scheduledlocalnotifications-empty Я думаю, что это та же проблема, что и ваша? – Joshua
Проверьте свой пожар, это кажется неправильным, запишите его и проверьте. – iphonic