<分区>
在我们的 iPhone 应用程序中,我们解析从 API 调用中获取的日期。日期正确返回并且是有效日期。现在只有在某些设备上,它才会在展开 Optional 值时因意外发现 nil 的错误而崩溃。这是有问题的代码:
//formatDate(date: date, format: FullDateFormat)
class func formatDate(date: String, format: String)->String{
if date.characters.count == 0 {return "" }
let formatter = DateFormatter()
formatter.dateFormat = Constants.FullDateFormat
let nsDate = formatter.date(from: date)
formatter.dateFormat = format
return formatter.string(from: nsDate!)
}
nsDate 没有被格式化,因为它是 nil。
Constants.FullDateFormat 是一个静态字符串,定义为“M/d/yyyy h:mm:ss a”,因为日期始终采用这种格式
类函数的调用看起来像这样
let newDate = Helpers.formatDate(date: "9/27/2017 9:26:51 AM", format: "h:mm a")
有些设备会崩溃,而大多数不会。如果我们不使用类函数,应用程序将正常运行。我看不出有任何原因,所以如果有人知道为什么会发生这种情况以及可能的解决方案,请告诉我。
这可能是重复的,但没有出现在我执行的任何搜索中。感谢社区,他们指出了另一个类似的问题,答案已经在 stackoverflow .如果重复,我深表歉意。