62 lines
1.5 KiB
Swift
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()
|
|
}
|
|
|
|
|
|
}
|