isDaylightSavingTimeForDate导致致命错误

时间:2016-04-07 09:13:25

标签: ios runtime-error

致命错误:在解包可选值时意外发现nil

触发此错误的例程是:

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

当DayLightSaving改变时(newDate!/ March 3月)。 inputTimeOffset和inputDayLightSaving都具有值3600。

1 个答案:

答案 0 :(得分:1)

您收到的错误("在展开“可选”值时出现意外的错误")表示您正在进行不适当的展开。

尝试将代码更改为:

// 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")
}