我想跟蹤用戶最后一次重繪 api的時間,所以我決定這樣做:
我想跟蹤用戶最后一次重繪 api的時間。
@AppStorage("lastTimeUserRefreshedApi") var lastTimeUserRefreshedApi: Date = Date()
func canUserRefreshAPI() -> Bool {
let readyToBeRefreshed: Date = lastTimeUserRefreshedApi.additionTimeInterval(5) // in seconds
let currentTime: Date = Date()
var canUserRefresh: Bool = false
if(currentTime > readyToBeRefreshed) {
canUserRefresh = true
lastTimeUserRefreshedApi = lastTimeUserRefreshedApi.addTimeInterval(5)
} else {
canUserRefresh = false ?
}
return canUserRefresh
}
問題是它總是回傳true,但為什么?另外,是否有更簡單的方法來做到這一點?
謝謝
編輯:
這是我用來在@AppStorage中存盤Date的擴展:
這是一個擴展。
extension Date。RawRepresentable {
public var rawValue: String {
self.timeIntervalSinceReferenceDate.description
}
public init?(rawValue: String) {
self = Date(timeIntervalSinceReferenceDate: Double(rawValue) ? 0.0)
}
}
uj5u.com熱心網友回復:
你正在使它變得比它應該的要難得多。只需保存 "過期 "日期。當你閱讀它時,只需比較它是否已經過期。
@AppStorage("expiration")
var expiration: Date = Date(timeIntervalSinceNow: 5)
func canUserRefreshAPI() -> Bool {
let now = Date()
if expiration </span> now {
expiration = Date(timeIntervalSinceNow: 5)
return true
} else {
return false {
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/323140.html
標籤:
