我正在开发我的第一个应用程序。我正在使用Swift。用户每天只允许采取一次特定行动。我需要编写正确的代码来检查用户是否已经采取了今天的操作。不幸的是,我几乎不知道如何构建代码。特别是我不知道如何为那些第一次开始使用该应用的用户声明变量nil。
@IBAction func yesButtonPressed(sender: AnyObject) {
// check if the user have already clicked 'yes' button today
// if true then do some something
// else show the alert
}
非常感谢您的回答!
答案 0 :(得分:0)
这并不是非常复杂,但如果你还没有,你需要学习一些技巧。我将尝试在代码中解释。
您可以使用标准用户默认值来保存一些值,以便即使用户关闭应用程序也会保留该值。
// To get current date and time
let currentDate = NSDate()
// To save it to user defaults - do this when the user presses the button
NSUserDefaults.standardUserDefaults().setObject(currentDate, forKey: "myDate")
NSUserDefaults.standardUserDefaults().synchronize()
// To retrieve the date from user defaults - and to check if the button was pressed
let myDate = NSUserDefaults.standardUserDefaults().objectForKey("myDate") as? NSDate
// myDate will be nil if it was not set yet (first use). Let's check it for nil
if let lastPushedDate = myDate {
// get current date a time to compare with the saved value
let dateNow = NSDate()
let secondsInADay: NSTimeInterval = 3600 * 25
// check how many seconds elapsed since last date and do something if the interval is long enough
if dateNow.timeIntervalSinceDate(lastPushedDate) >= secondsInADay {
println("We are fine, button can be pushed")
}
}
因此,在您的函数yesButtonPressed中,您将需要执行以下操作: