NSDate在swift 2.0中未初始化

NSDate在swift 2.0中未初始化,swift,nsdate,nsdateformatter,Swift,Nsdate,Nsdateformatter,让日期:NSDate=dateFor.dateFromStringdate!提供错误信息 在展开可选值时意外发现nil,则Date返回为未初始化和nil if let date = review.createdAt { let dateFor:NSDateFormatter = NSDateFormatter() dateFor.timeZone = NSTimeZone(abbreviation: "UTC") date

让日期:NSDate=dateFor.dateFromStringdate!提供错误信息

在展开可选值时意外发现nil,则Date返回为未初始化和nil

 if let date = review.createdAt {
            let dateFor:NSDateFormatter = NSDateFormatter()
            dateFor.timeZone = NSTimeZone(abbreviation: "UTC")
            dateFor.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
            let theDate:NSDate = dateFor.dateFromString(date)!
            let tempoDate = Tempo(date: theDate)
            let timeStamp = tempoDate.timeAgoNow()
            if let reviewString = review.description {
                let review = NSMutableAttributedString(string: reviewString + "  -  ")
                let x = NSAttributedString(string: timeStamp, attributes: [NSForegroundColorAttributeName : UIColor.lightGrayColor()])
                review.appendAttributedString(x)
                vivrcell.reviewDescription.attributedText = review
                vivrcell.reviewDescription.sizeToFit()

            }
        }
为什么会发生这种情况?我如何修复它?这在swift 1.2中起作用

dateFor.dateFromString(date)!
返回nil,因为“date”包含格式错误的字符串,无法转换为日期。但你是在强制展开它,这会产生错误。而不是用武力来解开它!使用if let执行此操作:

if let parsedDate = dateFor.dateFromString(date) { ... }

检查解析是否有效。

是否单步执行以查看导致问题的语句?甚至添加打印语句?然后,当问题被孤立时,问一个关于这个问题的问题。