2014-11-04 36 views
0

我遇到的問題是,我成功地安排了1到2小時的本地通知從現在開始,然後返回到我的主要根視圖控制器,其中運行一些代碼,根據是否安排本地通知顯示不同的框。因此,代碼爲:計劃本地通知iOS中沒有看到scheduledLocalNotifications馬上

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

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

然後是主根控制器上的方法被稱爲馬上就返回刷新包含的觀點:

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

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

我遇到的問題是,有時currentNotifications count是0,有時它是1,所以顯示錯誤的框。我認爲發生了什麼有時iOS仍在調度通知,有時不是,假設它在後臺執行而不阻塞線程?

我知道本地通知總是到達那裏,因爲如果我出現問題時出現問題,那麼它總是會找到本地通知。

有沒有一種方法可以等待它被安排在查找通知之前?這符合Apple的準則。在if塊中,我繼續使用通知中的信息。

回答

0

我看不到一種方法來保證當我回到主控制器時,通知將始終被安排。所以爲了解決這個問題,我把自己放入本地通知的信息自己傳回到主控制器的返回方法中。稍後從其他區域返回到主控制器,然後給予本地通知它需要調度自己1或2秒,並且可以使用現有的邏輯。