2013-03-14 78 views
0

我有一個應用程序,我正在與允許用戶設置和刪除UILocalNotifications。在開發過程中,我添加並刪除了用於測試的UILocalNotifications,它似乎正在工作。孤兒UILocalNotification - 已確認

但是我看到奇怪的行爲,從設備刪除我的應用程序並再次運行它沒有設置任何通知後,我會得到一個UILocalNotification。此新通知未在此新安裝中設置(通過在通知設置方法中添加斷點進行檢查)。

是否有可能從先前的安裝中得到孤立的UILocalNotification(是的,它似乎不太可能)。

我試着通過通知alertBody設置具體到每一個新的安裝,但這個唯一的字符串不會被顯示在警告一些在調試這一點。例如:

notif.alertBody = [NSString stringWithFormat:@"Alert for: %@", alertName]; 

有沒有人見過這種行爲?

更新:剛剛確認孤立UILocalNotifications:從設備中刪除應用程序,並在我的rootViewController上運行下面的代碼viewDidAppear。我得到的控制檯輸出如下:

2013-03-14 14:20:07.439 TestApp[16606:907] found alert: uigffhy 
2013-03-14 14:20:07.444 TestApp[16606:907] found alert: uigffhy 

此用戶是從一些以前的安裝。啊。

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

for (UILocalNotification *notif in notificationArray) { 
    NSDictionary * info = notif.userInfo; 
    NSString * name = [info objectForKey:@"sequenceName"]; 
    NSLog(@"found alert: %@", name); 

} 

回答

1

只是檢測,如果它是一個新的安裝(使用NSUserDefaults),並做applicationDidFinishLaunching:

[[UIApplication sharedApplication] cancelAllLocalNotifications]; 
+0

感謝您的答覆如下。讓我想知道:這不是一個錯誤,因爲所有的應用程序數據應該刪除時,應用程序被刪除。 – 2013-03-14 19:38:21

+0

從這個帖子:HTTP://stackoverflow.com/questions/4923028/uilocalnotification-fires-after-reinstalling-the-app 據蘋果公司稱,這是不是一個錯誤(我提交了錯誤報告)。該系統保留了24小時卸載的應用的UILocalNotifications以防萬一用戶意外刪除的應用程序,並恢復所述UILocalNotifications如果應用程序是規定時間內重新安裝。 – 2013-03-14 19:53:41

+0

酷 - 感謝您的跟蹤! – 2013-03-14 20:48:31