NSDate在swift 2.0中未初始化
让日期:NSDate=dateFor.dateFromStringdate!提供错误信息 在展开可选值时意外发现nil,则Date返回为未初始化和nilNSDate在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
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) { ... }
检查解析是否有效。是否单步执行以查看导致问题的语句?甚至添加打印语句?然后,当问题被孤立时,问一个关于这个问题的问题。