내가 실행하면 다음과 같은 (2017 년 1 월 7 일) : 다음신속한 사용자 알림 : nextTriggerDate가 nil이 아닌 이유는 무엇입니까?
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)")
내가 얻을 다음과 같은 출력 : = 일정
dateComponents : 그레고리 (현재) timeZone가 : 유럽/스톡홀름 (현재) 1 년 : 2017 개월 : 1 일 : 8 시간 : 21 분 : 34 초 : 0 나노초 : 0 평일 : 1 주일 처음 : 2 쿼터 : 0 주일 월 : 1 주일 중순 : 1 년 포기 항상 : 2017 isLeapMonth : false
nextDate = nil
질문 : 왜 trigger.nextTriggerDate() = nil
입니까?
UPDATE
: 나는 나의dateComponents
이
중복 - 결정된 할 수있는 느낌을 가지고 있었다.
var nextEvent = DateComponents()
nextEvent.day = dateComponents.day
nextEvent.hour = dateComponents.hour
nextEvent.minute = dateComponents.minute
let trigger = UNCalendarNotificationTrigger(dateMatching:nextEvent, repeats: false)
나는 지금 그것을 정상적으로
nextDate = Optional(2017-01-08 20:34:00 +0000)
된다 trigger.nextTriggerDate()
를 호출 할 때 : 그래서 저는 단지 dateComponents의 날의 시간과 분을 포함하는이 nextEvent
소개했다. 하지만 왜 내가 트리거를 만들 때 dateComponents를 사용할 수 없는지 이해할 수 없습니다.
매우 구체적인 것은 아니기 때문에 이전 대답을 편집했습니다. 문제의 진정한 원인을 찾은 것 같습니다. – Sulthan