Ios NSDateformatter dateFromString任意对象

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()

我有一个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!))
    }
}
代码在以下位置崩溃:

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))
    }
}

@莱昂纳多·萨维奥·达布斯感谢你们的帮助,非常感谢。当我看到你的两种解决方案时,我看到了我的错误所在,希望我能在别人告诉我之前看到它。。。!我想经验才是最重要的。谢谢你,非常感谢