首页 > 解决方案 > 在 Xcode 11.4 和 Swift 中检查 Nil 时出错

问题描述

我正在尝试创建一个应用程序,它会根据您插入文本字段的开始时间每小时通知您一次。我有一个 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!)
        }

先感谢您!

标签: iosswiftxcodenotificationsnull

解决方案


您正在检查文本字段是否为空,而不是检查文本字段中包含的文本是否为空。如果如下所示,您必须更正第一个

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

推荐阅读