2016-11-18 8 views
3

発射日を確認するために予定されているローカル通知を一覧表示して、良いものをキャンセルしたいと考えています。ローカル通知をキャンセルする

これは私が地元の通知を追加している方法です:

let notification = UILocalNotification() 
notification.fireDate = date 
notification.alertBody = message 
notification.soundName = UILocalNotificationDefaultSoundName 
notification.timeZone = NSTimeZone.defaultTimeZone() 

これは、私は良いものを見つけるために、すべての通知を一覧表示しています方法です:

for oneEvent in UIApplication.sharedApplication().scheduledLocalNotifications! { 
    if date == notification.fireDate { 
     app.cancelLocalNotification(notification) 
    } 
} 

問題は、私は多くのことを作成することです通知の数は常にscheduledLocalNotificationsに1つだけあります。

通知は正しく実行されますが、それらを取得することはできません。scheduledLocalNotifications変数です。

答えて

2

私はあなたの質問を得ていないが、私は怒鳴るコード内のいくつかの疑問はこれを試してみる:

あなたが通知を作成した後、この行を記述する必要があります。その後、

UIApplication.sharedApplication().scheduleLocalNotification(notification) 

for oneEvent in UIApplication.sharedApplication().scheduledLocalNotifications! { 
    if date == oneEvent.fireDate { 
     app.cancelLocalNotification(oneEvent) 
    } 
} 
+0

はい、これはまさに私がやっていることです。私は10の通知を追加することができます、scheduledLocalNotificationsは常に1つの通知だけを含みます。非常に奇妙な行動 –

+0

火災の日付が異なる10の通知? –

+0

はい!通知は問題なく起動されますが、キャンセルすることはできません –

1

あなたは、IOS 10を使用している場合は、UserNotificationsフレームワーク(UserNotifications.framework)をインポートしようとし、その後、IOS 10では

let center = UNUserNotificationCenter.current() 
center.getPendingNotificationRequests(...) 

ことができ、Appleが新しいに移動しました通知フレームワークでは、古い方法(sharedApplication.scheduleLocalNotification)を使用してローカル通知を作成およびスケジュールすることはできますが、古い通知を処理するときには奇妙な動作が発生しますway(UIApplication.sharedApplication()。scheduledLocalNotifications)。

関連する問題