毎日午前8時に発砲する予定のローカル通知があり、午前8時に3回、午前9時と午後12時に再発するそれは翌日に同じことをやり直します。ローカル通知複数回の発砲と予定外時間
関数が複数回呼び出されたかどうか(複数回呼び出されていても間違った時間に関数が呼び出されなかった場合でも)はチェックされました。そして、私が考えることができるほとんどすべては、コードを実装しましたが、役に立たないものです。
これは私が通知を設定する方法である:
func setUpMainLocalNotification() {
let notificationSettings = UIApplication.sharedApplication().currentUserNotificationSettings()
if notificationSettings?.types == .None {
return
}
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let currentCalendar = NSCalendar.currentCalendar()
let date = NSDate()
let calendarComponents = calendar.components([.Year, .Month, .WeekOfMonth, .Hour, .Minute, .Second], fromDate: date)
calendarComponents.hour = 8
calendarComponents.minute = 0
calendarComponents.second = 0
currentCalendar.timeZone = NSTimeZone.defaultTimeZone()
let reminder = UILocalNotification()
reminder.timeZone = NSTimeZone.defaultTimeZone()
reminder.fireDate = currentCalendar.dateFromComponents(calendarComponents)
reminder.alertBody = "Notification"
reminder.category = "CATEGORY_ID"
reminder.repeatInterval = .Day
reminder.alertAction = "Reply"
reminder.soundName = "sound.aif"
UIApplication.sharedApplication().scheduleLocalNotification(reminder)
}
更新:
私はここで自分の質問を読んでいたとして、私は時間の私を設定した後、タイムゾーンを設定していることに気づきました私の通知を発射したかったので、時間を設定する前に次の行を移動して、動作するように見えますが、1回だけ、8時に起動します。
currentCalendar.timeZone = NSTimeZone.defaultTimeZone()
おかげで最新のコードです。私は解決策で私の質問を更新しました。 –