Geen omschrijving

UserInfoStore.swift 1016B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // UserSessionStore.swift
  3. // PaiaiDataKit
  4. //
  5. // Created by ffib on 2018/12/20.
  6. // Copyright © 2018 yb. All rights reserved.
  7. //
  8. import Foundation
  9. fileprivate extension UserDefaults {
  10. struct Account: BoolUserDefaultable, DictionaryUserDefaultable {
  11. enum DictionaryDefaultKey: String {
  12. case userInfo
  13. }
  14. enum BoolDefaultKey: String {
  15. case isLogin
  16. case isAudit
  17. }
  18. }
  19. }
  20. final class UserInfoStore {
  21. #warning("是否加密存储userId")
  22. func save(_ userInfo: UserInfo) {
  23. UserDefaults.Account.set(true, forKey: .isLogin)
  24. UserDefaults.Account.set(userInfo.toJSON(), forKey: .userInfo)
  25. }
  26. func delete() {
  27. UserDefaults.Account.set([:], forKey: .userInfo)
  28. UserDefaults.Account.set(false, forKey: .isLogin)
  29. }
  30. func load() -> UserInfo {
  31. let json = UserDefaults.Account.dictionary(forKey: .userInfo)
  32. return UserInfo(json: json as [String: AnyObject])
  33. }
  34. }