MoviaBox/Thimra/Class/Home/ViewModel/SPSearchViewModel.swift
2025-04-22 17:30:04 +08:00

62 lines
1.5 KiB
Swift

//
// SPSearchViewModel.swift
// Thimra
//
// Created by on 2025/4/18.
//
import UIKit
class SPSearchViewModel: NSObject {
///
@objc dynamic var searchHistoryArr: [String] = SPSearchViewModel.getSearchHistory()
func addSearchHistory(text: String) {
guard text.count > 0 else { return }
SPSearchViewModel.addSearchHistory(text: text)
searchHistoryArr = SPSearchViewModel.getSearchHistory()
}
func cleanSearchHistory() {
SPSearchViewModel.cleanSearchHistory()
searchHistoryArr.removeAll()
}
}
extension SPSearchViewModel {
///
static func addSearchHistory(text: String) {
var arr = getSearchHistory()
for (i, value) in arr.enumerated() {
if value == text {
arr.remove(at: i)
break
}
}
arr.insert(text, at: 0)
if arr.count > 10 {
arr.removeLast()
}
UserDefaults.standard.set(arr, forKey: kSPHomeSearchHistoryDefaultsKey)
UserDefaults.standard.synchronize()
}
///
static func getSearchHistory() -> [String] {
let arr = UserDefaults.standard.object(forKey: kSPHomeSearchHistoryDefaultsKey) as? [String]
return arr ?? []
}
///
static func cleanSearchHistory() {
UserDefaults.standard.set([], forKey: kSPHomeSearchHistoryDefaultsKey)
UserDefaults.standard.synchronize()
}
}