sodalive-ios/SodaLive/Sources/Extensions/UserDefaultsExtension.swift

73 lines
1.9 KiB
Swift

//
// UserDefaultsExtension.swift
// SodaLive
//
// Created by klaus on 2022/05/20.
//
import Foundation
enum UserDefaultsKey: String, CaseIterable {
case auth
case role
case can
case token
case email
case userId
case nickname
case pushToken
case profileImage
case noChatRoomList
case devicePushToken
case isContentPlayLoop
case isFollowedChannel
case isViewedOnboardingView
case notShowingEventPopupId
}
extension UserDefaults {
static func set(_ value: Bool, forKey key: UserDefaultsKey) {
let key = key.rawValue
UserDefaults.standard.set(value, forKey: key)
}
static func bool(forKey key: UserDefaultsKey) -> Bool {
let key = key.rawValue
return UserDefaults.standard.bool(forKey: key)
}
static func set(_ value: String, forKey key: UserDefaultsKey) {
let key = key.rawValue
UserDefaults.standard.set(value, forKey: key)
}
static func string(forKey key: UserDefaultsKey) -> String {
let key = key.rawValue
return UserDefaults.standard.string(forKey: key) ?? ""
}
static func set(_ value: Int, forKey key: UserDefaultsKey) {
let key = key.rawValue
UserDefaults.standard.set(value, forKey: key)
}
static func int(forKey key: UserDefaultsKey) -> Int {
let key = key.rawValue
return UserDefaults.standard.integer(forKey: key)
}
static func set(_ value: Data, forKey key: UserDefaultsKey) {
let key = key.rawValue
UserDefaults.standard.set(value, forKey: key)
}
static func data(forKey key: UserDefaultsKey) -> Data? {
let key = key.rawValue
return UserDefaults.standard.data(forKey: key)
}
static func reset() {
UserDefaultsKey.allCases.forEach { UserDefaults.standard.removeObject(forKey: $0.rawValue) }
}
}