User Defaults сохраняет только ограниченный набор типов: Data, String, Number, Date, Array, Dictionary. Для хранения кастомных структур данных их необходимо кодировать в Data и декодировать обратно.
Используется протокол Codable (комбинация Encodable и Decodable).
Определение структуры: Структура должна соответствовать протоколу Codable.
swift
Сохранение: Кодирование структуры в Data с помощью JSONEncoder и сохранение в User Defaults.
swift
Считывание: Чтение Data из User Defaults и декодирование обратно в структуру с помощью JSONDecoder.
swift
Ключевые моменты:
Codable и JSONEncoder/JSONDecoder является стандартным способом сохранения кастомных типов в Data.try? и обрабатывать потенциальные ошибки кодирования/декодирования.Codable.swift