2017-01-07 18 views
0

私は(2017年1月7日に)、以下を実行すると:ユーザーの迅速な通知:なぜnextTriggerDateはnilですか?

dateComponents =カレンダー:グレゴリオ暦(現在の)タイムゾーン:ヨーロッパ/ストックホルム(現在)

 let dateComponents = Calendar.current.dateComponents(in: TimeZone.current, from: date) 
     print("dateComponents = \(dateComponents)") 
     let trigger = UNCalendarNotificationTrigger(dateMatching:dateComponents, repeats: false) 
     let nextDate = trigger.nextTriggerDate() 
     print("nextDate = \(nextDate)") 

を、私は次の出力を得ます1年:2017月:1日:8時間:21分:34秒:0ナノ秒:0平日:1平日起算:2四半期:0週0月:1週0年:1年ForWeekOf年:2017 isLeapMonth:false

nextDate = nil

質問:なぜtrigger.nextTriggerDate() = nilですか?

UPDATE:私は私のdateComponents過決定ことができることを感じていました。私は今、それが

nextDate = Optional(2017-01-08 20:34:00 +0000) 

それが必要としてなっtrigger.nextTriggerDate()を呼び出すとき

var nextEvent = DateComponents() 
nextEvent.day = dateComponents.day 
nextEvent.hour = dateComponents.hour 
nextEvent.minute = dateComponents.minute 

let trigger = UNCalendarNotificationTrigger(dateMatching:nextEvent, repeats: false) 

:私はそのためだけdateComponentsの日の時間と分を含まnextEventを導入しました。しかし、なぜ私はトリガを作成するときにdateComponentsを使用できないのか分かりません。

答えて

2

私のテストでは、dateComponents.quarter = 0が原因であることがわかりました。ゼロ四半期は明らかに間違っています、それはquarter = 1であるはずです古いbugは、日付コンポーネントに無効な四半期を持たせるようです。

dateComponents.quarter = 1またはdateComponents.quarter = nilを手動で設定すると、すべてが機能し始めます。

+0

非常に具体的ではなかったので、以前の回答を編集しました。私は問題の本当の原因を見つけたと思う。 – Sulthan

関連する問題