Skip to Content

UserDefaults

1. Cơ bản

// Write UserDefaults.standard.set("John", forKey: "username") UserDefaults.standard.set(25, forKey: "age") UserDefaults.standard.set(true, forKey: "isPremium") // Read let name = UserDefaults.standard.string(forKey: "username") let age = UserDefaults.standard.integer(forKey: "age") let isPremium = UserDefaults.standard.bool(forKey: "isPremium")

2. @AppStorage

@AppStorage("username") var username = "" @AppStorage("theme") var theme = "light" // Trong View, tự động bind TextField("Name", text: $username)

3. Custom Objects

struct Settings: Codable { var volume: Double = 0.5 var language: String = "en" } // Save let settings = Settings() if let data = try? JSONEncoder().encode(settings) { UserDefaults.standard.set(data, forKey: "settings") } // Load if let data = UserDefaults.standard.data(forKey: "settings"), let settings = try? JSONDecoder().decode(Settings.self, from: data) { // Use settings }

4. Keys Enum

enum UserDefaultsKeys: String { case username case email case isLoggedIn } UserDefaults.standard.set("John", forKey: UserDefaultsKeys.username.rawValue)

📝 Limits

  • Không dùng cho data lớn
  • Không encrypt (đừng lưu passwords)
  • Synchronous (có thể block main thread)
Last updated on