Код IT
← Каталог

Свойства-обёртки в Swift — Сквозной мини-кейс — настройки приложения

Фрагмент из «Свойства-обёртки в Swift»: Сквозной мини-кейс — настройки приложения.

Plain text main.swift
@propertyWrapper
struct AppStorage<T> {
    let key: String
    let defaultValue: T

    var wrappedValue: T {
        get {
            UserDefaults.standard.object(forKey: key) as? T ?? defaultValue
        }
        set {
            UserDefaults.standard.set(newValue, forKey: key)
        }
    }
}

struct Settings {
    @AppStorage(key: "darkMode", defaultValue: false)
    static var isDarkMode: Bool

    @AppStorage(key: "fontScale", defaultValue: 1.0)
    static var fontScale: Double
}
@propertyWrapper
struct AppStorage<T> {
    let key: String
    let defaultValue: T

    var wrappedValue: T {
        get {
            UserDefaults.standard.object(forKey: key) as? T ?? defaultValue
        }
        set {
            UserDefaults.standard.set(newValue, forKey: key)
        }
    }
}

struct Settings {
    @AppStorage(key: "darkMode", defaultValue: false)
    static var isDarkMode: Bool

    @AppStorage(key: "fontScale", defaultValue: 1.0)
    static var fontScale: Double
}