如何读取定时器的值?迅捷
How to read the values of timer? Swiftui
我正在尝试 swift UI 中的下一个条件:
如果计时器(小时)显示 23,则 tryout = tryout + 1。
但是,它说我的代码永远不会被执行。那么,有没有可能做到这一点?
在我的应用程序中,用户选择截止日期前的天数,而我试图通过计时器进行截止日期倒计时。我需要一个解决方案来读取计时器中的小时数,这样我就可以在计时器到达新的一天时保存一个新值。
也许您有其他解决方案(日历除外,因为我无法将其添加到我的应用程序中),我将很高兴听到它们!
P.S。我的代码示例:
/////Timer
let timer = Timer.publish(every: 3600, on: .main, in: .common).autoconnect()
/////Timer Func
func dayString(time: Int) -> String {
let days = Int(time) / 86400
let hours = Int(time) / 3600 % 24
return String(format:"%02i", days)
if hours == 23 {
tryout = tryout + 1
}
}
我不确定你想做什么,但你提到你的功能有问题,我可以帮助解决。
你有:
/////Timer Func
func dayString(time: Int) -> String {
let days = Int(time) / 86400
let hours = Int(time) / 3600 % 24
return String(format:"%02i", days) // <- function returns
if hours == 23 { // <- this will never run
tryout = tryout + 1
}
}
因为你是从你的函数中 returning 的,它后面的代码将永远不会被执行,这就是编译器告诉你的。您需要将 return 移动到最后一个表达式
/////Timer Func
func dayString(time: Int) -> String {
let days = Int(time) / 86400
let hours = Int(time) / 3600 % 24
if hours == 23 {
tryout = tryout + 1
}
return String(format:"%02i", days)
}
我正在尝试 swift UI 中的下一个条件:
如果计时器(小时)显示 23,则 tryout = tryout + 1。 但是,它说我的代码永远不会被执行。那么,有没有可能做到这一点?
在我的应用程序中,用户选择截止日期前的天数,而我试图通过计时器进行截止日期倒计时。我需要一个解决方案来读取计时器中的小时数,这样我就可以在计时器到达新的一天时保存一个新值。
也许您有其他解决方案(日历除外,因为我无法将其添加到我的应用程序中),我将很高兴听到它们!
P.S。我的代码示例:
/////Timer
let timer = Timer.publish(every: 3600, on: .main, in: .common).autoconnect()
/////Timer Func
func dayString(time: Int) -> String {
let days = Int(time) / 86400
let hours = Int(time) / 3600 % 24
return String(format:"%02i", days)
if hours == 23 {
tryout = tryout + 1
}
}
我不确定你想做什么,但你提到你的功能有问题,我可以帮助解决。
你有:
/////Timer Func
func dayString(time: Int) -> String {
let days = Int(time) / 86400
let hours = Int(time) / 3600 % 24
return String(format:"%02i", days) // <- function returns
if hours == 23 { // <- this will never run
tryout = tryout + 1
}
}
因为你是从你的函数中 returning 的,它后面的代码将永远不会被执行,这就是编译器告诉你的。您需要将 return 移动到最后一个表达式
/////Timer Func
func dayString(time: Int) -> String {
let days = Int(time) / 86400
let hours = Int(time) / 3600 % 24
if hours == 23 {
tryout = tryout + 1
}
return String(format:"%02i", days)
}