extension UserDefaults {
? ? /// 通過(guò)下標(biāo)使用枚舉
? ? subscript(key:String) ->T? {
? ? ? ? get{
? ? ? ? ? ? ifletrawValue =value(forKey: key)as?T.RawValue{
? ? ? ? ? ? ? ? returnT(rawValue: rawValue)
? ? ? ? ? ? }
? ? ? ? ? ? returnnil
? ? ? ? }
? ? ? ? set{set(newValue?.rawValue, forKey: key) }
? ? }
? ? subscript(key:String) ->T? {
? ? ? ? get{returnvalue(forKey: key)as?T}
? ? ? ? set{set(newValue, forKey: key) }
? ? }
}
enumTheme:Int{
? ? caselight=0
? ? casedark
? ? caseblue
}
enum market: String{
? ? case isFirstLogin
? ? case appTheme
? ? caseblue
}
struct DefaultUtility {
? ? ///bool
? ? static var isFirstLogin: Bool {
? ? ? ? get { return UserDefaults.standard[market.isFirstLogin.rawValue] ?? false }
? ? ? ? set{UserDefaults.standard[market.isFirstLogin.rawValue] = newValue }
? ? }
? ? /// string
? ? staticvarblue:String{
? ? ? ? get{returnUserDefaults.standard[market.blue.rawValue] ??"哈哈哈哈哈哈"}
? ? ? ? set{UserDefaults.standard[#function] = newValue }
? ? }
? ? ///enum
? ? ? ? staticvarappTheme:Theme{
? ? ? ? ? ? get{returnUserDefaults.standard[market.appTheme.rawValue] ?? .blue}
? ? ? ? ? ? set{UserDefaults.standard[#function] = newValue }
? ? ? ? }
}