Основы SwiftUI / Урок 18 / @ObservedObject / @Published / @EnvironmentObject

preview_player
Показать описание
Друзья, это мой новый бесплатный курс основам фреймворка SwiftUI.
В этом курсе мы шаг за шагом будем двигаться к созданию наших первых приложений и изучать новые возможности и новые техники создания приложений, которые нам предоставляет SwiftUI.
Перед прохождением этого курса, рекомендую пройти мой курс по основам программирования на языке Swift. Вы можете найти его у меня на канале. Желаю успеха!
#ityoutubersru
Рекомендации по теме
Комментарии
Автор

Друзья!
Решил создать telegram чат, чтобы сформировать небольшое комьюнити из тех, кто смотрит мои видео уроки о языке программирования Swift на YouTube.
Для того, чтобы группа единомышленников здесь могла общаться и обсуждать актуальные вопросы.
Присоединяйтесь!

isswiftlessons
Автор

На самом деле класс @ObservableObject не является singleton, и создав свойство во втором вью, мы создадим второй экземпляр класса , и два вью не будут видеть изменений между собой , на помощь приходит @EnvironentObject, один стор передавать во все вью через этот врапер! Удобней было бы, если б @ObservableObject был одиночкой, и объявив его в разных вью, мы имели доступ к одним и тем же данным .

it-coding
Автор

Братан, спасибо большое!
Подписался на телегу.
Канал О*уенный, воше п*здец!
Ждем новых видосиков. Красава!

rovsen
Автор

А где там второе вью ?! :) ... там просто класс UserSettings в отдельном файле.

IgorSul
Автор

Жаль что ты забросил это дело, в очередной раз твое видео мне помогло))

Pan_Artem
Автор

Это не похоже на обмен информацией между экранами. Ян просто создал экземпляр класса в одном вью и в этом же вью использует его =) По хорошему надо показать как один и тот же экземпляр передавать между вью

frrrost
Автор

Зачем было создавать SwiftView файл UserSettings если это даже не вью, это обычный Swift файл, который содержит класс? Там даже PreviewProvider не нужен и его можно удалить. Автор походу сам запутался что хотел показать и что в итоге получилось

semensimanov
Автор

А не планируете сделать курс по Storyboards? Какие есть различия между созданием приложений с помощью SwiftUI и Storyboards? Что проще и удобнее и в каких случаях?

SY-worm
Автор

Не корректное объяснение.
@State мы используем в рамках одного экрана, да, но если мы хотим менять @State с другого экрана - просто используется @Binding.
@Observed используется с классами для более сложной логики, вот и все, а не просто для передачи между вью (для которого используем @State и @Bingind).

gamebazar
Автор

Обертка @ObservedObject может случайно освободить класс(объект), который он хранит. Чтобы этого не произошло используйте @StateObject!
Обертка @StateObject используется один раз на объект, остальные view которые разделяют ваш объект, должны использовать @ObservedObject.
Первый раз всегда пишем @StateObject, а после @ObservedObject

VladimirKim-clrh