Ios NSDateformatter dateFromString任意对象
我有一个NSDates的AnyObjects数组,我正在尝试转换为工作日,如(周一、周二、周三…) 当我将阵列打印到控制台时,该阵列如下所示: [2014-12-03 22:16:26+0000,2014-12-05 22:16:26+0000,2014-12-11 22:16:26+0000] 这是我的代码:Ios NSDateformatter dateFromString任意对象,ios,swift,Ios,Swift,我有一个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()
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!))
}
}
代码在以下位置崩溃:
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!))
}
}
我一整天都在试图找出我做错了什么,几乎阅读了NSDateFormatter上的每一个问题,但都无济于事。我将I向下转换为String,因为如果我不转换,我会得到错误消息AnyObject不能转换为String。我的感觉是,类型不匹配,但我不确定,我不知道如何找到。如果有帮助的话,我已将错误消息作为图片附上。如果你能推荐一本关于如何理解错误的教程、书籍或其他东西,我将不胜感激,因为我正在努力学习
任何帮助都将不胜感激
extension NSDate {
var weekdayName: String {
let formatter = NSDateFormatter()
formatter.dateFormat = "EEEE"
return formatter.stringFromDate(self)
}
}
let myArrayOfAnyObjects:[AnyObject] = [NSDate()]
myArrayOfAnyObjects.first!.weekdayName // "Tuesday"
因此,
xaxisdate
数组包含NSDate
对象
let date = formatter.dateFromString(i as String)
没有任何意义,i as String
已经崩溃,因为i
是NSDate
而不是字符串
您只需将日期转换为字符串:
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))
}
}
@莱昂纳多·萨维奥·达布斯感谢你们的帮助,非常感谢。当我看到你的两种解决方案时,我看到了我的错误所在,希望我能在别人告诉我之前看到它。。。!我想经验才是最重要的。谢谢你,非常感谢