在这个函数中,我试图从UIDatePicker获取数据并从中减去5。例如,如果在UIDatePicker上午7:15说它将从小时减去并且是凌晨2:15。修改后的代码不适用于我将其提供给我的标签的行,错误显示' Int'与' String' 不同。工作代码是原始版本,无论我在日期选择器中输入的是什么,它都显示用户选择的日期,因此如果在上午7:15它将显示为上午7:15而不会减去任何内容。
与故事板连接的DatePicker
@IBOutlet weak var theDatePicker: UIDatePicker!
没有.toInt()的原始代码
func handler(sender: UIDatePicker) {
var timeFormatter = NSDateFormatter()
timeFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
var strDate = timeFormatter.stringFromDate(theDatePicker.date)
hoursLeftLabel.text = strDate
}
修改后的代码
func handler(sender: UIDatePicker) {
var timeFormatter = NSDateFormatter()
timeFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
var intDate = timeFormatter.stringFromDate(theDatePicker.date).toInt()
hoursLeftLabel.text = intDate
}
如果您有任何疑问或需要任何澄清,请在下面发表评论
答案 0 :(得分:1)
尝试使用:
hoursLeftLabel.text = "\(intDate)"
这应该有效,因为你创建了一个包含int日期的字符串。
错误Int与字符串不相同意味着您要传递需要字符串的Int。错误确实可能更准确,比如说错误的类型或类似的东西
编辑: 我建议你做这样的日期计算:
let newDate = theDatePicker.date.dateByAddingTimeInterval(-5*60*60) //-5 Hours
//now you can display your date like this:
hoursLeftLabel.text = timeFormatter.stringFromDate(newDate)