Ниже представлен небольшой фрагмент Лекции 12 Стэнфордского курса CS193P Весна 2023 «Разработка iOS приложений с помощью SwiftUI«.
Полный русскоязычный неавторизованный конспект Лекции 12 в формате Google Doc и в виде PDF-файла, который можно скачать и использовать offline, доступны здесь.
Код находится на GitHub.
С полным перечнем Лекций и Домашних Заданий на русском языке можно познакомиться здесь.
. . . . . . . . . . . . . .
UserDefaults для сохранения палитр palettes
Давайте займемся нашими палитрами.
Вы видите палитры прямо здесь?
Если я зайду в свои палитры и скажу New (новая), то добавляется математическая палитра Math. Если я заново перезапущу приложения, то мы обнаружим, что математическая палитра Math исчезла.
Приложение не помнит, что я добавил палитру Math (Математика).
Или, если я удалю что-то, например, Sports, ну, нам не нравятся виды спорта.
Если мы вернемся и перезапустим наше приложение, то палитра Sports возвращается.
Итак, мы хотим сделать так, чтобы все, что мы здесь делаем с палитрами, новые и удаленные палитры запоминались.
Мы запомним это в UserDefaults, главным образом потому, что я уже показал вам, как это сделать в файловой системе, теперь я хочу показать, как это делать в UserDefaults. Вероятно, как мы говорили ранее, это не совсем уместно делать это в UserDefaults. Но учитывая довольно маленькое количество данных, мы собираемся сделать это в UserDefaults.
Мы сделаем это очень крутым способом.
Видите мои @Published палитры palettes, которые находятся в моем PaletteStore?
Позвольте мне избавиться от этого кода и превратить palettes в вычисляемое свойство:
Читать далее