首先篙挽,真機(jī)與模擬器的最大的區(qū)別在于
- iOS 真機(jī)是大小寫敏感的闺骚。
- 真機(jī)和模擬器的Local設(shè)定可能會不同。模擬器的默認(rèn)local是 "en_US"致讥,而真機(jī)就視地區(qū)而定了膀懈。
所以用一下的代碼在真機(jī)上運(yùn)行就可能會出錯了
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)
return date! //fatal error: unexpectedly found nil while unwrapping an Optional value
}
所以改成
func regularDate(fromString str: String) -> Date {
let formatter = DateFormatter()
formatter.dateFormat = "EEE MMM dd HH:mm:ss ZZZ yyyy"
formatter.locale = Locale(identifier: "en_US")
formatter.timeZone = TimeZone(identifier: "UTC") // 最好這也加上去
let date = formatter.date(from: str)
return date!
}