5minho / DreamRecorder

mino & bran BoostCamp Project
6 stars 0 forks source link

iOS9에서 AlarmScheduler가 제대로 작동하지 않음. #36

Closed YoonJuHo closed 6 years ago

YoonJuHo commented 6 years ago

반복없이 한번만 설정한 경우: Time은 현재지만 Date가 미설정으로 과거로서 바로 didReceive됨 날마다 반복으로 설정한 경우: 비록 과거로 fireDate가 설정되어도 날마다 이므로 제대로 실행이됨.(정상) 특정 주일을 설정한 경우 : 정상작동안함.

YoonJuHo commented 6 years ago

UserNotification(iOS10)과 다르게 LocalNotification(iOS9)는 Calendar기반으로 알람을 울리지 않고 Date기반으로 알람을 울리도록 Trigger가 설정된다. 따라서 LocalNotification을 등록할 때 한번의 등록의 경우는 등록하는 시간보다 앞서는 시간일 경우(DatePicker에서는 Time만 설정 가능) fireDate를 다음날의 시간으로 설정하고 등록하는 시간보다 뒤의 경우에는 그대로 등록하여 해결. 날마다 반복은 fireDate가 언제가 되었건 그것이 day기반으로 반복되므로 정상적으로 작동한다. 특정 주일의 경우는 기존에 interval을 weekday로 설정해줬던 것을 weekOfYear로 설정하는데 이때 알람시간으로 부터dateComponents를 불러 올 때 [weekOfYear]를 함께 불러온 후 다시 components로 부터 date를 추출해주어야 정상 작동함.