斯威夫特4
我有一个数组,其中将包含星期几中的随机文本。例如
var daysOfWeek: [String] = [] // ["Tuesday", "Thursday" , "Sunday", "Friday"]
我希望能够对它们进行排序:周日,周一,周二等。
我不确定这是否是正确的方法,但我尝试过此方法。
let dateFormatter = DateFormatter()
for element in daysOfWeek {
print(dateFormatter.weekdaySymbols[element])
}
这引发一个错误:
value of optional type '[String]?' must be unwrapped to refer to member 'subscript' of wrapped base type
我对Xcode和Swift相当陌生
这是正确的方法吗?如果是这样,我该如何解决错误?
如果这不是正确的方法,那是什么?感谢您的帮助
您可以创建像这样的字典,该字典将每个字符串与一个数字值对应:
let weekDayNumbers = [
"Sunday": 0,
"Monday": 1,
"Tuesday": 2,
"Wednesday": 3,
"Thursday": 4,
"Friday": 5,
"Saturday": 6,
]
然后您可以按以下顺序排序:
weekdays.sort(by: { (weekDayNumbers[$0] ?? 7) < (weekDayNumbers[$1] ?? 7) })
这将在末尾订购非工作日的字符串。
另请注意,世界不同地区的一周开始时间不同。他们可能会以不同的顺序订购东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句