gpt4 book ai didi

swift - 快速按下按钮之间的时间差

转载 作者:行者123 更新时间:2023-11-28 05:32:51 30 4
gpt4 key购买 nike

现在我正在开发一个时钟应用程序,它允许用户打卡/下类时间。但是我无法弄清楚如何使该功能成为可能。

在我的模型中我有:

struct TimeLog {

var punchInTime: CFAbsoluteTime
var punchOutTime: CFAbsoluteTime
var timeWorked: Double


init (pInTime: CFAbsoluteTime, pOutTime: CFAbsoluteTime) {
self.punchInTime = pInTime
self.punchOutTime = pOutTime
self.timeWorked = pOutTime - pInTime
}

}

在我的 View Controller 中:

class ViewController: UIViewController {


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.
}

@IBAction func punchInButtonPressed(sender: AnyObject) {

// not sure what actions are needed here to start the "aTimeLog" variable

}
@IBAction func punchOutButtonPressed(sender: AnyObject) {

// not sure what actions are needed here to complete the "aTimeLog" variable

}

我正在尝试完成这个变量:

var aTimeLog = TimeLog(pInTime: //get the punch in time here, pOutTime: //get the punch out time here)

一旦变量“aTimeLog”完成(按下 punchOutButton),我想显示所有“timeWorked”变量的日志。

请原谅我。您可能会说我只是在学习编程和 Swift。

最佳答案

就个人而言,我会在 NSUserDefaults 中保留一个变量 - 及时存储打洞。然后,当点击退出按钮时,它会从 NSUserDefaults 中获取 dateTime 变量,进行所需的计算并返回结果。这适用于用户关闭应用程序的情况(记住打卡时间)。

这会创建一个 NSUserDefaults 对象

var punchInTime : NSUserDefaults = NSUserDefaults.standardUserDefaults()

@IBAction func punchInButtonPressed(sender: AnyObject) {

保存当前时间

        punchInTime.setObject(NSDate(), forKey: "punchInTime")
punchInTime.synchronize()
}
@IBAction func punchOutButtonPressed(sender: AnyObject) {

获取保存的时间

        punchInTime.objectForKey("punchInTime") as NSDate

创建一个保存当前时间的变量,以便您可以比较两者

        var currentTime : NSDate = NSDate()
currentTime.timeIntervalSinceDate(punchInTime) // returns seconds

现在您可以将开始时间、结束时间和总工作时间保存在一个以日期为键的字典中...

    }

然后当你想显示所有工作日时,只需循环字典:)

...希望我理解正确

关于swift - 快速按下按钮之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959833/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com