'Int'与'String'不同 - Swift

时间:2014-11-04 15:41:31

标签: ios xcode swift datepicker

在这个函数中,我试图从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

    }

如果您有任何疑问或需要任何澄清,请在下面发表评论

1 个答案:

答案 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)