您好我正在尝试使用dateByAddingTimeInterval将天数添加到当前日期。它没有显示任何错误,但是当我提交表单时应用程序崩溃了:
var newDate = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM, yyyy"
var interval: Double!
if self.unit == "D" {
var aTime = Double(loadTime.toInt()!) * 24 * 60 * 60
var interval = NSTimeInterval(aTime)
} else if self.unit == "H" {
var aTime = Double(loadTime.toInt()!) * 60 * 60
var interval = NSTimeInterval(aTime)
}
var EndDate = newDate.dateByAddingTimeInterval(interval)
var EndDateStr = dateFormatter.stringFromDate(EndDate)
product["loadEndDate"] = EndDateStr
Debug导航器显示此行的错误: var EndDate = newDate.dateByAddingTimeInterval(interval)
有人可以告诉我哪里做错了吗?我经历了许多在线帮助,但没有发现任何可以帮助我的情况。
提前致谢,
答案 0 :(得分:1)
let today = NSDate()
let tommorrow = NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitDay, value: 1, toDate: today, options: nil)
答案 1 :(得分:0)
每个var
关键字都会创建一个新变量,您将在if - else表达式中创建新的区间变量,并在大括号之间使用范围。第一个区间变量,后来使用的是nil
改进语法
var newDate = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM, yyyy"
let interval: NSTimeInterval // let and not optional
if self.unit == "D" {
interval = NSTimeInterval(loadTime.toInt()! * 24 * 60 * 60)
} else if self.unit == "H" {
interval = NSTimeInterval(loadTime.toInt()! * 60 * 60)
}
var endDate = newDate.dateByAddingTimeInterval(interval)
var endDateStr = dateFormatter.stringFromDate(endDate)
product["loadEndDate"] = endDateStr
答案 2 :(得分:0)
这个有用:
var newDate = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM, yyyy"
var interval: Double! = 0.0
if self.unit == "D" {
var aTime = Double(loadTime.toInt()!) * 24 * 60 * 60
interval = NSTimeInterval(aTime)
} else if self.unit == "H" {
var aTime = Double(loadTime.toInt()!) * 60 * 60
interval = NSTimeInterval(aTime)
}
var EndDate = newDate.dateByAddingTimeInterval(interval)
var EndDateStr = dateFormatter.stringFromDate(EndDate)
product["loadEndDate"] = EndDateStr
我所做的就是从if循环中删除'var interval'中的'var'(这是非常愚蠢的:P)并给出了interval变量的初始值。但我认为这是'var'搞砸了。
再次感谢,