isDaylightSavingTimeForDate 导致致命错误

isDaylightSavingTimeForDate causing fatal error

致命错误:在展开可选值时意外发现 nil

触发此错误的例程是:

// Calculate Timer Offset
let tz = NSTimeZone(name: inputTimeZone)
if tz!.isDaylightSavingTimeForDate(newDate!) {
     inputTimeOffset = inputTimeOffset + inputDayLightSaving
} 

夏令时更改时(新日期!/3 月 30 日)。 inputTimeOffset 和 inputDayLightSaving 的值都是 3600。

您遇到的错误 ("unexpectedly found nil while unwrapping an Optional value") 表明您的展开不当。

尝试将您的代码更改为:

// Calculate Timer Offset
if let unwrappedDate = newDate as? NSDate
{
    if let tz = NSTimeZone(name: inputTimeZone)
    {
        if tz.isDaylightSavingTimeForDate(unwrappedDate) {
            inputTimeOffset = inputTimeOffset + inputDayLightSaving
        } 
    } else {
        print("why is time zone null?  is \(inputTimeZone) invalid?")
    }
} else {
    print("suprise!  newDate is nil")
}