我正在尝试创建一个名为“它是你的生日”的有趣应用程序你基本上插入你的出生日期,然后你插入当前日期,它检查两个日期并回答“今天不是你的生日... “或”今天是你的生日!“
简单的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 回答
在
checkButtonClicked
方法中,您有一个实例变量dateChosen
和一个同名的局部变量 . 局部变量隐藏实例变量 . 您的代码将值保存到局部变量中,然后在函数返回时丢弃该值 .摆脱
checkButtonClicked
内的局部变量dateChosen
. 这样,该函数将更改实例变量 .您应该学会使用调试器 . 您可以通过单步执行代码来发现此问题 .