我有一个应用程序,如果我尝试在真实设备上运行此应用程序(iPhone 5S和6) - Xcode显示错误:
致命错误:在解包可选值时意外发现nil 2017-04-11 00:43:58.724143 0200 APN [2153:475883]致命错误:在解包可选值时意外发现nil
有一段代码存在问题 . 但在模拟器中一切正常 .
let stringBefore = "Mon, 10 Apr 2017 11:39:24 +0000"
let startIndexDate = stringBefore.index(stringBefore.startIndex, offsetBy: 5)
let endIndexDate = stringBefore.index(stringBefore.endIndex, offsetBy: -15)
let rangeDate = startIndexDate..<endIndexDate
let stringAfter = stringBefore.substring(with: rangeDate)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"
let date = dateFormatter.date(from: stringAfter)
dateFormatter.dateFormat = "dd.MM.yyyy"
let finish = dateFormatter.string(from: date!) // there is the problem but why in Simulator is ok?
我知道我可以写
dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
但是我想问你问题出在哪里?
1 回答
这可能是您的转换器无法处理的奇怪时区问题 . 没有一些调试我不知道 .
无论如何,我建议使用另一个DateFormatter来查找你的日期,而不是试图解析字符串:
另外,作为一般规则,强行展开一个可选的(
date!
)是一个坏主意,除非你因为你在发动机罩下发生了这种情况,或者你的程序崩溃,如果这个值没有存在 .