Files
suixinkan_uikit/suixinkan/DataStore/AppPaymentStore.swift
汉秋 c083f1d4b3 升级 AppStore 缓存 Key 并在覆盖安装时强制重新登录。
统一账号作用域 Key 对齐 Android,新增缓存 schema 迁移清理旧数据,并同步更新相关模块与单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 09:35:55 +08:00

46 lines
1.2 KiB
Swift

//
// AppPaymentStore.swift
// suixinkan
//
import Foundation
///
final class AppPaymentStore {
private enum Key: String, CaseIterable {
case isOpenReceiveVoice = "key_is_open_receive_voice"
}
private let defaults: UserDefaults
private let session: AppSessionStore
/// 使
init(defaults: UserDefaults, session: AppSessionStore) {
self.defaults = defaults
self.session = session
}
///
var isOpenReceiveVoice: Bool {
get {
guard let key = scopedKey(.isOpenReceiveVoice) else { return false }
return defaults.bool(forKey: key)
}
set {
guard let key = scopedKey(.isOpenReceiveVoice) else { return }
defaults.set(newValue, forKey: key)
}
}
///
func clear(accountScope: String) {
guard !accountScope.isEmpty else { return }
Key.allCases.forEach { defaults.removeObject(forKey: "\(accountScope)_\($0.rawValue)") }
}
private func scopedKey(_ key: Key) -> String? {
session.accountScopedKey(key.rawValue)
}
}