已修复 - 好的,发现它是什么,当我没想到它时,有一个错误的[[UIApplication sharedApplication] cancelAllLocalNotifications];
被解雇了。
那是你的问题。
感谢大家的帮助,很抱歉让它变得愚蠢的编码器综合症。
我已经建立了我的本地通知:
- (void)scheduleNotification {
[[UIApplication sharedApplication] cancelAllLocalNotifications];
Class cls = NSClassFromString(@"UILocalNotification");
if (cls != nil) {
UILocalNotification *notif = [[cls alloc] init];
NSLog(@"%@", [NSDate date]);
notif.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
notif.alertBody = NSLocalizedString(@"Hello.", nil);
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
NSLog(@"Notification scheduled at %@", notif.fireDate);
[notif release];
}
}
正如预期的那样,我的调试日志将来会输出正确的fireDate 10秒。如果我不离开我的应用程序,我会得到一个成功的application:didReceiveLocalNotification:
回调。
这里的打嗝是,如果我按下按钮来安排此通知并点击主页按钮将其置于后台。如果我这样做,通知永远不会触发,我从未从操作系统获得警报视图。
我错过了一些明显的东西吗?我在这里上下打量,苹果文档,觉得我错过了一些明显的东西。
非常感谢任何帮助。感谢。
答案 0 :(得分:1)
可能是因为没有将timeZone设置为[NSTimeZone defaultTimeZone]会导致问题吗?如果未设置timeZone(默认为零),则假定为GMT。
答案 1 :(得分:0)
您是否尝试将代码包装在后台任务中?
答案 2 :(得分:0)
好的,发现它是什么,有一个错误的[[UIApplication sharedApplication] cancelAllLocalNotifications];在进入后台时被发送。