작성
·
241
0
안녕하세요? 오랜만에 질문 드립니다.(또 귀찮게 해드리네요 ㅠ)
잠깐 두어달간 업무가 바빠져서 iOS 공부를 손에 놓았다가 다시 시작했습니다.
질문 드릴 것은
Todo에서 로컬 노티피케이션(알림 받기)을 설정하고 저장하면 노티피케이션 request가 등록되거나 해제되는데
처음 작성하는 Todo에서 처음부터 알림 받기를 off하여 저장하면 즉, shouldNotify가 처음부터 false인 경우
let isSuccess: Bool = Todo.saveToJSONFile()
if isSuccess {
if self.shouldNotify {
Todo.addNotification(todo: self)
} else {
Todo.removeNotification(todo: self)
}
이 코드에서 removeNotification은 해제할 노티피케이션이 없는데도 괜찮을런지 궁금합니다. (시뮬레이터에서 앱 실행은 문제가 없는데 나중에라도 크래쉬가 날까봐 무섭네요.)
혹시 해제 전에 노티피케이션이 등록되어 있는지 확인하는 로직이 필요할까요? 아니면 iOS에서 원래 등록되지 않은 노티피케이션이면 일치하는 identifier가 없으니 해제하라는 명령을 알아서 무시할 수도 있을 것 같기도 한데...
로컬 노티피케이션을 이것저것 응용해서 간단한 앱을 만들어 보고 있는데 개발자 문서에도 없는 request에 대해 해제하려고 할 때에 대해서는 나와 있지가 않아서 혹여나 하는 마음에 질문 드립니다.
감사합니다.
답변 1
0
removePendingNotificationRequests(withIdentifiers:) 메서드의 문서에 따르면 예약된 노티피케이션의 식별자가 아니면 무시하는 것 같습니다 :)
removePendingNotificationRequests(withIdentifiers:) | Apple Developer Documentation
질문은 언제나 환영입니다 ㅎㅎ