我有一个 NSDates 的 AnyObjects 数组,我正在尝试转换为工作日,例如(周一、周二、周三......)
当我将它打印到控制台时,数组看起来像这样:
[2014-12-03 22:16:26 +0000, 2014-12-05 22:16:26 +0000, 2014-12-11 22:16:26 +0000]
这是我的代码:
var xAxisDates = [AnyObject]()
func dateformatter() {
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
let weekDayFormatter = NSDateFormatter()
weekDayFormatter.dateFormat = "EEE"
println(xAxisDates)
for i in xAxisDates{
let date = formatter.dateFromString(i as String)
println(weekDayFormatter.stringFromDate(date!))
}
}
代码崩溃于:
let date = formatter.dateFromString(i as String)
我一整天都在努力找出我做错了什么,并阅读了几乎所有关于 NSDateFormatter 的问题,但无济于事。我将 i 转换为字符串,因为如果我不这样做,我会收到错误消息 AnyObject 不可转换为字符串。我的感觉是类型不匹配,但我不确定,而且我不知道如何找出答案。如果有帮助,我已将错误消息作为图片附上。如果您可以推荐有关如何理解错误的教程或书籍或其他东西,我将不胜感激,因为我正在努力学习。
任何帮助将不胜感激!
最佳答案
xAxisDates
数组包含 NSDate
对象,因此
let date = formatter.dateFromString(i as String)
没有任何意义,i as String
已经崩溃了,因为 i
是一个 NSDate
而不是 String
。
您只需要将日期转换为字符串:
for i in xAxisDates {
println(weekDayFormatter.stringFromDate(i as NSDate))
}
或者更好地检查数组元素是否实际上是 NSDate
对象:
for i in xAxisDates {
if let date = i as? NSDate {
println(weekDayFormatter.stringFromDate(date))
}
}
关于ios - NSDateformatter dateFromString AnyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713648/