从String创建Date在真机运行崩溃
2017-05-25 本文已影响19人
JaiUnChat
首先,真机与模拟器的最大的区别在于
- iOS 真机是大小写敏感的。
- 真机和模拟器的Local设定可能会不同。模拟器的默认local是 "en_US",而真机就视地区而定了。
所以用一下的代码在真机上运行就可能会出错了
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!
}