2016-01-13 51 views
0

我有一些重複的可操作的通知,當我點擊某個通知的按鈕時,我必須刪除所有相同的通知。例如,我有4個已經推通知:iOS:如何刪除已推送的本地通知?

Not 1 
Not 2 
Not 1 
Not 2 

如果我使用的「不1」,我需要刪除操作的所有「不1」,所以,這將是這樣

Not 2 
Not 2 

我可以這樣做嗎?

[UIApplication sharedApplication].scheduledLocalNotifications] 

只給我預定的通知,但我需要刪除已顯示的通知,不在此數組中。

+0

所以,當你登錄的數組什麼你從應用程序返回的? – Wain

+0

看看這個,可能重複的問題http://stackoverflow.com/a/6341476/4582941 –

+0

@例如,如果我計劃3個通知:第一,第二和第三;第一個和第二個已經推了,第三個只會,預定的LocalNotifications將只包含第三個。 – AntiVIRUZ

回答

0

您可以在本地通知的用戶信息中爲關鍵字保存唯一的值。獲取所有本地通知,循環訪問數組並刪除特定的通知。

代碼如下,

UIApplication *app = [UIApplication sharedApplication]; 
NSArray *eventArray = [app scheduledLocalNotifications]; 
for (int i=0; i<[eventArray count]; i++) 
{ 
    UILocalNotification* oneEvent = [eventArray objectAtIndex:i]; 
    NSDictionary *userInfoCurrent = oneEvent.userInfo; 
    NSString *uid=[NSString stringWithFormat:@"%@",[userInfoCurrent valueForKey:@"uid"]]; 
    if ([uid isEqualToString:uidtodelete]) 
    { 
     //Cancelling local notification 
     [app cancelLocalNotification:oneEvent]; 
     break; 
    } 
} 
+0

''只給我預定的通知,但還沒有顯示出來。 – AntiVIRUZ