gpt4 book ai didi

swift - 将所选时间与当前时间进行比较

转载 作者:行者123 更新时间:2023-11-28 10:57:14 24 4
gpt4 key购买 nike

我有一个用于选择时间(不是日期)的 UIdatepicker。选择时间后,我需要检查它是否是存储在手机时钟中的当前时间,如果不是,则继续检查直到它是一个,然后执行此代码:

takephoto = true

示例:我在上午 10:29 打开应用程序,我选择 10:31 作为时间,在 10:31 take-hot = true 被执行。

我看了this问题,但是它比较的是日期而不是时间。非常感谢任何帮助。

我也试过使用这段代码,但它不能正常工作。我需要计时器准确(在实际时间的一秒内),此代码只能在一分钟内(实际时间)工作:

var timercount = Timer()

viewdidload()
{
timercount = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(Check), userInfo: nil, repeats: true)
}


Func Check()
{

let nowdate = NSDate()(two date declare global Var)
let date2 = datePicker?.date
(chek the Time How Much Time Remain)
let elapsed = date2?.timeIntervalSince(nowdate as Date)

if Int(elapsed!) == 0
{

takePhoto = true
}

}

最佳答案

您通过 NSDate 使事情复杂化。使用 Swift 的原生 Date:

func check() {
let fireDate = datePicker.date

if fireDate < Date() {
takePhoto = true
}
}

另外,你应该避免这种情况:

if Int(elapsed!) == 0 { } // don't

原因是计时器可能会错过一个节拍(由于用户退出应用程序、系统太忙、舍入错误等),从而无法满足该条件。始终检查现在是否已超过 fireDate,如果为真,请拍照。如果只想拍摄一次照片,请添加另一个属性来表明这一点,如下所示:

if fireDate < Date() && !photoTaken {
takePhoto = true
photoTaken = true
}

关于swift - 将所选时间与当前时间进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603809/

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