add cache
This commit is contained in:
parent
ffcb893954
commit
f2c5133e79
22
dimensionhub/Core/DataCache.swift
Normal file
22
dimensionhub/Core/DataCache.swift
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user