iOS中的计划本地通知不会立即在scheduledLocalNotifications中看到

时间:2014-11-04 11:18:52

标签: ios

我遇到的问题是我从现在开始成功安排本地通知1到2个小时,然后我回到我的主根视图控制器,其中一些代码运行并显示一个不同的框,具体取决于本地通知是否安排。所以代码是:

/// Commit notification
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

[self performSegueWithIdentifier:@"exitToStart" sender:self];

然后在主根控制器上,在返回时立即调用一个方法来刷新包含以下内容的视图:

NSArray *currentNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];

if ([currentNotifications count] > 0)
{
   ...
}
else { ... }

我遇到的问题是有时currentNotifications计数为0,有时它为1,因此显示错误的框。我认为正在发生的事情有时iOS仍在安排通知,有时它不是,假设它在后台没有阻塞线程吗?

我知道本地通知总是到达那里,因为如果我在问题发生时进出root,那么它总是会找到本地通知。

在寻找通知之前,我有没有办法等待它的安排?这符合Apple的指导方针。在if块中,我继续使用通知中的信息。

1 个答案:

答案 0 :(得分:0)

我无法保证在我回到主控制器时,始终会安排通知。因此,为了解决这个问题,我将自己输入本地通知的信息传回给主控制器的返回方法。稍后从其他区域返回主控制器然后给它本地通知它需要安排自己的1或2秒,并且可以使用现有的逻辑。