我正在使用以下函数从String创建Date。它在模拟器上运行良好。但它在真正的iPhone上坠毁。为什么从字符串创建日期只有失败在真正的iPhone?
String: "Tue May 23 23:19:41 +0800 2017"
第一张照片是真正的iPhone上的调试信息。第二个是在模拟器上调试信息。
func createDate(fromString string: String) -> Date {
let formatter = DateFormatter()
formatter.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
let date = formatter.date(from: string) //fatal error: unexpectedly found nil while unwrapping an Optional value
return date!
}
我甚至尝试了操场。这真的很奇怪! 谢谢!
检查语言与地区(在设置→常规)设置为所述装置和仿真器上是相同的。可能您需要将'Locale'对象传递给您的日期格式化程序以具有类似的行为 – dymv
'DateFormatter'认为当前的区域设置。模拟器的默认语言环境是'en_US'。特定设备可能具有不同的区域设置。 – vadian
我在过去遇到同样的问题,我不确定问题的原因。但如果需要,我可以指导您解决方案。到目前为止,我在objective-c中有它的解决方案。 –