Music_Player3/relax.offline.mp3.music/MP/MPPositive/Models/ViewModels/LoadViewModels/MPPositive_GridLoadViewModel.swift
2024-07-12 19:33:23 +08:00

66 lines
2.2 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// MPPositive_GridLoadViewModel.swift
// relax.offline.mp3.music
//
// Created by Mr.Zhou on 2024/7/12.
//
import UIKit
class MPPositive_GridLoadViewModel: NSObject {
static let shared = MPPositive_GridLoadViewModel()
var grideViewModels:[MPPositive_GridViewModel] = []
private override init() {
super.init()
if let data = chachedData() {
grideViewModels = data
}
}
//grideModel
func reloadGrides() {
MP_NetWorkManager.shared.requestGenres { [weak self] array in
guard let self = self else {return}
DispatchQueue.main.async {
self.grideViewModels = array
self.cacheResponseData(self.grideViewModels)
//
NotificationCenter.notificationKey.post(notificationName: .search_gride_reload)
}
}
}
//
private func cacheResponseData(_ array: [MPPositive_GridViewModel]) {
guard grideViewModels.count != 0 else {
print("Search Gride数据未加载无法缓存")
return
}
//jsonData
do{
let jsonData = try JSONEncoder().encode(array)
//使UserDefaults
UserDefaults.standard.set(jsonData, forKey: "SearchGride")
print("已经将Search Gride数据缓存")
}catch{
//jsonData
print("Search Gride数据转为Data失败失败原因\(error)")
}
}
//
private func chachedData() -> [MPPositive_GridViewModel]? {
guard let cacheData = UserDefaults.standard.data(forKey: "SearchGride") else {
print("获取Search Gride缓存数据失败")
return nil
}
do {
let array:[MPPositive_GridViewModel] = try JSONDecoder().decode([MPPositive_GridViewModel].self, from: cacheData)
print("已经将Search Gride缓存数据取出")
return array
} catch {
//jsonData
print("获取Search Gride缓存数据失败失败原因\(error)")
return nil
}
}
}