Swift UIDatePicker不';我不知道它当前显示的是当前日期

Swift UIDatePicker不';我不知道它当前显示的是当前日期,swift,uidatepicker,Swift,Uidatepicker,我的swift应用程序使用UIDatePicker供用户选择日期。但是,我想对其进行设置,以便在用户忘记插入时显示“未插入日期” 问题是,当我设置一个if语句,根据日期选择器的日期是否等于当前日期来显示警告时,它根本无法识别它。这是我的密码: if datePicker.date == NSDate() { warnL.text = "NO DATE INSERTED" } 我该怎么办? 任何帮助都将不胜感激!谢谢 NSDate返回所有日期,包括时间,因此它永远不会等于日期选择器中的时

我的swift应用程序使用UIDatePicker供用户选择日期。但是,我想对其进行设置,以便在用户忘记插入时显示“未插入日期”

问题是,当我设置一个
if
语句,根据日期选择器的日期是否等于当前日期来显示警告时,它根本无法识别它。这是我的密码:

if datePicker.date == NSDate() {
    warnL.text = "NO DATE INSERTED"
}
我该怎么办?
任何帮助都将不胜感激!谢谢

NSDate
返回所有日期,包括时间,因此它永远不会等于
日期选择器中的时间。
您可以定义一个变量,告诉您日期是否已更改:

var dateWasChanged = false
然后,您可以为更改事件注册处理程序:

func viewDidLoad() {
   datePicker.addTarget(self, action: #selector(YourViewController.handleDatePicker), forControlEvents: UIControlEvents.ValueChanged)
}

func handleDatePicker() {
    dateWasChanged = true
}

之后,您可以检查
日期是否已更改
是否为
,并显示您的信息。

了解日期是否为今天的一个更简单的方法是使用
NSCalendar
上的方法:

if NSCalendar.currentCalendar().isDateInToday(datePicker.date) {
    warnL.text = "NO DATE INSERTED"
}

它负责时区、区域设置和日历类型。

哦,好了,现在我明白为什么它不起作用了!但是,在严格遵循上述步骤之后,我仍然会遇到一个错误:“类型‘ViewController’没有成员‘handleDatePicker’。我如何使其成为ViewController的成员或只是使其工作?下面是代码:'var dateWasChanged=false datePicker.addTarget(self,action:#selector(ViewController.handleDatePicker),forControlEvents:UIControlEvents.ValueChanged)func handleDatePicker(){dateWasChanged=true}'您需要将
var-dateWasChanged=false
作为ViewController变量,然后调用
viewDidLoad
中的
addTarget
方法。和
handleDatePicker
put-as方法在ViewController中。