неожиданно обнаружил ноль при развертывании необязательного значения keyboardWillShow

У меня есть этот код ниже, который запускается, когда вызывается клавиатураWillShowNotification:

func keyboardWillShow(_ notification: Notification) {
    //ERROR IN THE LINE BELOW            
    keyboard = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as AnyObject).cgRectValue
    animaton = (notification.userInfo?[UIKeyboardAnimationDurationUserInfoKey] as AnyObject).doubleValue

    UIView.animate(withDuration: 0.4, animations: { () -> Void in
       self.scrollView.frame.size.height = self.scrollViewHeight - self.keyboard.height
    }) 
}

Я получаю сообщение об ошибке во второй строке:unexpectedly found nil while unwrapping an Optional value, Как правило, всякий раз, когда я нажимаю на одно из текстовых полей, будет вызываться это уведомление для клавиатуры и код вkeyboardWillShow побежит. Я знаю, я положилif...let заявления, но я хочу знать, почему я получаю ноль за это.

Я не уверен, как я получаю эту ошибку или как ее отладить. Это потому, что я запускаю его с симулятора?

Вот что дает распечатка Notification.userInfo:

Необязательный ([AnyHashable ("UIKeyboardFrameEndUserInfoKey"): NSRect: {{0, 315}, {320, 253}}, AnyHashable ("UIKeyboardIsLocalUserInfoKey"): 1, AnyHashable ("UIKeyboardBoundsUserInfoKey {0, 0,}: 0SR) , {320, 253}}, AnyHashable ("UIKeyboardAnimationCurveUserInfoKey"): 7, AnyHashable ("UIKeyboardCenterBeginUserInfoKey"): NSPoint: {160, 694.5}, AnyHashable ("UIKeyboardCenterEndUserInfoKey: 160, AnyHfoBey} 160NSashibey"): NH UIKeyboardFrameBeginUserInfoKey "): NSRect: {{0, 568}, {320, 253}}, AnyHashable (" UIKeyboardAnimationDurationUserInfoKey "): 0,25])