add cache

This commit is contained in:
anlicheng 2025-02-20 17:04:42 +08:00
parent ffcb893954
commit f2c5133e79
2 changed files with 36 additions and 8 deletions

View File

@ -0,0 +1,22 @@
//
// DataCache.swift
// dimensionhub
//
// Created by on 2025/2/20.
//
actor DataCache {
public static let shared = DataCache()
private var dateModelCache: [DateNavView.DateModel] = []
func setDateModelCache(_ models: [DateNavView.DateModel]) {
self.dateModelCache = models
}
func getDateModelCache() -> [DateNavView.DateModel] {
return self.dateModelCache
}
}

View File

@ -42,14 +42,20 @@ struct DateNavView: View {
}
}
.task {
let response = await API.getDateIndex(as: [DateNavView.DateModel].self)
switch response {
case .error(let code, let message):
print(code)
print(message)
case .result(let result):
print(result)
self.dateModels = result
let models = await DataCache.shared.getDateModelCache()
if models.count > 0 {
self.dateModels = models
} else {
let response = await API.getDateIndex(as: [DateNavView.DateModel].self)
switch response {
case .error(let code, let message):
print(code)
print(message)
case .result(let result):
print(result)
self.dateModels = result
await DataCache.shared.setDateModelCache(result)
}
}
}
}