Sobes.tech
Назад к вопросам
Junior — Middle
69

Имел ли практика использования Property Wrapper в своих проектах?

Компании, где спрашивали
Яндекс БраузерЯндекс Браузер

Ответ от нейросети

sobes.tech AI

Property Wrapper в Swift — это механизм, позволяющий оборачивать логику доступа к свойствам в отдельный тип, что упрощает повторное использование и улучшает читаемость кода.

В своих проектах я использовал Property Wrappers для управления состоянием, например, @UserDefault для удобной работы с UserDefaults:

@propertyWrapper
struct UserDefault<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 {
    @UserDefault(key: "isDarkMode", defaultValue: false)
    static var isDarkMode: Bool
}

Это позволяет удобно и безопасно хранить и получать значения из UserDefaults, не дублируя код.