Ошибка при проверке нуля в Xcode 11.4 и Swift - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать приложение, которое уведомляет вас каждый час в зависимости от времени начала, которое вы вставляете в текстовое поле. У меня есть оператор if, который проверяет, равно ли значение текстового поля нулю, и устанавливает время уведомления по умолчанию, если текстовое поле равно нулю. Однако я получаю сообщение об ошибке «Неожиданно обнаружено значение nil при развертывании необязательного значения». Я не уверен, почему это происходит. Я новичок в Xcode и кодировании в целом, поэтому прошу прощения, если у этого вопроса есть очевидное решение.

Вот код:

Примечание: заголовки текста поля: HourOneHourlyUN и MinuteOneHourlyUN

      if HourOneHourlyUN == nil || MinuteOneHourlyUN == nil {

            dateComponents1.hour = 9
            dateComponents1.minute = 00

            dateComponents2.hour = 10
            dateComponents2.minute = 00

            dateComponents3.hour = 11
            dateComponents3.minute = 00

            dateComponents4.hour = 12
            dateComponents4.minute = 00

            dateComponents5.hour = 13
            dateComponents5.minute = 00

            dateComponents6.hour = 14
            dateComponents6.minute = 00

        } else {
           dateComponents1.hour = Int(HourOneHourlyUN.text!)
           dateComponents1.minute = Int(MinuteOneHourlyUN.text!)

           dateComponents2.hour = Int(HourOneHourlyUN.text!)! + 1
           dateComponents2.minute = Int(MinuteOneHourlyUN.text!)

           dateComponents3.hour = Int(HourOneHourlyUN.text!)! + 2
           dateComponents3.minute = Int(MinuteOneHourlyUN.text!)

           dateComponents4.hour = Int(HourOneHourlyUN.text!)! + 3
           dateComponents4.minute = Int(MinuteOneHourlyUN.text!)

           dateComponents5.hour = Int(HourOneHourlyUN.text!)! + 4
           dateComponents5.minute = Int(MinuteOneHourlyUN.text!)

           dateComponents6.hour = Int(HourOneHourlyUN.text!)! + 5
           dateComponents6.minute = Int(MinuteOneHourlyUN.text!)
        }

Заранее спасибо!

1 Ответ

0 голосов
/ 06 мая 2020

Вы проверяете, является ли текстовое поле нулевым, вместо того, чтобы проверить, является ли текст, содержащийся внутри текстового поля, пустым. Вы должны исправить первое, если, как показано ниже

if HourOneHourlyUN.text == nil || MinuteOneHourlyUN.text == nil {
     // Code
}
...