首页 文章

如何将Swift UIDatePicker转换为字符串,然后检查另一个日期

提问于
浏览
1

我正在尝试创建一个名为“它是你的生日”的有趣应用程序你基本上插入你的出生日期,然后你插入当前日期,它检查两个日期并回答“今天不是你的生日... “或”今天是你的生日!“

简单的app应对吗?

我遇到了问题..在这一点上,我只是做了一个名为myBirthday的常数(1月15日)

然后用户使用UIDatePicker,并选择当前日期 .

程序检查DatePicker中的变量“dateChosen”(我相信我已经将日期和月份正确转换为字符串),其中“myBirthday”常量

出于某种原因,即使我选择1月15日(15-01),并用“myBirthday”(15-01)检查,它也不会认出这些是相同的日期!

谁能帮我!这是我的代码

谢谢:)(顺便提一下,这是在Swift中编程的)

import UIKit

class ViewController: UIViewController {


var responseText = "Response Text"
let myBirthday = "15-01"
var dateChosen = ""


@IBOutlet var checkButton: UIButton!
@IBOutlet var displayAnswer: UILabel!

@IBOutlet weak var myDatePicker: UIDatePicker!
@IBOutlet weak var selectedDate: UILabel!

@IBAction func datePickerAction(sender: AnyObject) {
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "dd-MM"

    var strDate = dateFormatter.stringFromDate(myDatePicker.date)
    var dateChosen = strDate
    println(strDate)
}



@IBAction func checkButtonClicked(sender:UIButton) {
    if dateChosen == myBirthday {
        displayAnswer.hidden = false
        responseText = "Today is your birthday!"
        self.displayAnswer.text = responseText
    } else {
        displayAnswer.hidden = false
        responseText = "Today is not your birthday..."
        self.displayAnswer.text = responseText
    }
}






override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

1 回答

  • 0

    checkButtonClicked 方法中,您有一个实例变量 dateChosen 和一个同名的局部变量 . 局部变量隐藏实例变量 . 您的代码将值保存到局部变量中,然后在函数返回时丢弃该值 .

    摆脱 checkButtonClicked 内的局部变量 dateChosen . 这样,该函数将更改实例变量 .

    您应该学会使用调试器 . 您可以通过单步执行代码来发现此问题 .

相关问题