swift UserDefailts 项目实战用户信息缓存

1、不多话直接上干货

1、新建swift文件 在swift项目当中UserDefailts是天生的单例模式

import UIKit

// 遵循协议RawRepresentable
protocol UserDefaultsSettable {
    associatedtype defaultKeys: RawRepresentable
}
//扩展存的方便使用
extension UserDefaultsSettable where defaultKeys.RawValue==String {
    static func set(value: String?, forKey key: defaultKeys) {
        let aKey = key.rawValue
        UserDefaults.standard.set(value, forKey: aKey)
    }
//扩展取的方便使用
    static func string(forKey key: defaultKeys) -> String? {
        let aKey = key.rawValue
        return UserDefaults.standard.string(forKey: aKey)
    }
}

//扩展UserDefaults
extension UserDefaults {
    // 添加账户信息key
    struct AccountInfo: UserDefaultsSettable {
        enum defaultKeys: String {
            case userName
            case age
        }
    }
    
    // 添加登录信息key
    struct LoginInfo: UserDefaultsSettable {
        enum defaultKeys: String {
            case token
            case userId
        }
    }
    

    //全局清除缓存数据
    class func clearAllUserDefaultsData(){
        if let appDomain = Bundle.main.bundleIdentifier {
        UserDefaults.standard.removePersistentDomain(forName: appDomain)
         }
    }
        
        
    
    
}

2、接下来重点来了怎么使用简单快捷

 UserDefaults.LoginInfo.set(value: str, forKey:.token) 存
 UserDefaults.LoginInfo.string(forKey:.token)!    取
 UserDefaults.clearAllUserDefaultsData()      消失所有

是我花了一点带你时间写分享下,好用记得给点赞。

你可能感兴趣的:(swift UserDefailts 项目实战用户信息缓存)