gpt4 book ai didi

arrays - 按日期顺序对数组进行排序会导致设备崩溃

转载 作者:行者123 更新时间:2023-11-28 06:32:48 24 4
gpt4 key购买 nike

我有一个存储不同日期的数组:

var Dates_Array = [String]()

然后我有一个将字符串转换为 NSDate 的扩展:

    extension String{
var StringToDate:NSDate {
let df = NSDateFormatter()
df.dateStyle = .LongStyle
df.timeStyle = .NoStyle
return (df.dateFromString(self))!
}
}

这是对数组进行排序的代码:

self.Ordered_Dates_Array = self.Dates_Array.sort { ($0 ).StringToDate.compare(($1 ).StringToDate) == .OrderedAscending}

在模拟器中,所有这些代码都按预期工作。但是当我在设备上运行它时,应用程序崩溃了,这是错误消息的图像:

当我注释掉对数组进行排序的代码时,一切都按预期工作。那么是什么导致我的应用程序在设备上崩溃而不是在模拟器上崩溃?

编辑:

这是 Dates_Array 的样子:

["2016年12月24日", "2016年9月14日", "2016年9月19日", "2016年11月19日"]

我的设备时区是伦敦。语言 = 英语,日历 = 公历。

最佳答案

return (df.dateFromString(self))! 替换为:

if let dateString = df.dateFromString(self) {
return dateString
} else {
//Handle situations where the string can't be formatted as date
return "Can't convert to date"
}

现在你可以知道哪些字符串不能转换了。

关于arrays - 按日期顺序对数组进行排序会导致设备崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39835715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com