2015-07-11 27 views
1

Ciao的,兜售世界報。在我的雨燕的應用程序,有計劃的,將在一段時間後加載UIViewController時被調用方法UILocalNotification,它是(使用repeatInterval = .CalendarUnitHour)重複每隔一小時。我這個UILocalNotification實例存儲在UIViewController私有財產,這樣我以後可以取消它。當用戶按下在UIViewController的按鈕時,操作方法將觸發通知實例的消除,通過該我使用此代碼(該代碼還用於在UIViewControllerdeinit爲什麼我不能取消重複的UILocalNotification?

if let notification = notificationProperty { 
    UIApplication.sharedApplication().cancelLocalNotification(notification) 
    notificationProperty = nil 
} 

我使用一個如果,讓這裏聲明,以防止意外取消nilUILocalNotification。但即使它取消了通知,該通知仍然顯示每隔一小時。

那麼爲什麼不取消正常嗎?謝謝!

回答

2

的的NotI說明系統擁有的是你作爲一個領域持有的副本。由於它不是系統中的通知實例,因此無法取消您持有的那個。

您可以通過cancelAllLocalNotifications取消所有現有通知,或者通過scheduledLocalNotifications屬性遍歷所有現有實例來找到要取消的通知。

+0

哦,這是一個意外的驚喜!謝謝你的提示! – Blip

+0

但是,每個重複的'UILocalNotification'都作爲一個單獨的通知計數嗎?或者重複的'UILocalNotifications'作爲一個組來計算,所以當你取消它時,所有發佈的被取消? – Blip

相關問題