Работа с сетью через async - await в Swift / Xcode | Apple | iOS
Vložit
- čas přidán 26. 08. 2024
- Рассмотрим второй вариант работы с сетью - современный, с помощью асинхронных async - await функций
Запись на курс:
Телеграм: @WladMadi
Телефон: +7 (967) 901-73-24
Информация о курсе: madi.study
Ссылка на телеграм-чат:
t.me/+SBRqlvcb...
PS: Всем привет! Меня зовут Влад Мади, Вы на образовательном канале диджитал-студии MADI.SPACE. Здесь мы учимся разрабатывать приложения под iOS на языке Swift. На нашем канале Вы можете изучать Swift и разработку под iOS по плейлистам.
Спасибо за видео, очень просто и понятно, если бы раньше встретила, взяла бы этот курс, а не тот, после которого другие видосы приходится смотреть, чтобы разобраться
Лишний повод рассказать знакомым, чтобы не наступили на Ваши грабли)
Спасибо за вашу работу. Было бы супер, если бы вы выпустили отдельный ролик про роботу async - await
Пожалуйста! Отдельный ролик в плане про сам механизм?
@@MadiSpace Да, про сам механизм, его работу и когда и как его можно применять.
С возвращением! Приятно снова видеть тебя))
пока я джуном уверенным не стану даже не вздумай бросать канал
ну как?стал?
Отлично! Спасибо за видео! Расскажите ещё пожалуйста про применение Task подробнее
Наконец-то!!!
Супер!
классно объясняешь, спасибо,
Пожалуйста! И успехов в обучении
@@MadiSpace благодарю
👍
Кто нибудь сталкивался с такой штукой? в эмуляторе программа работает выполняет все как надо, а при запуске на iPhone тупо ничего не происходит. я уже всю голову сломал... Программа по примеру из этого видео. парсит JSON (простая проверка авторизации)
👍🏻👍🏻👍🏻
Не получается этот метод в UIkit применить. При нажатии на ячейку в таблице, должен быть переход на другой VC в котором пытался вызвать метод который при помощи данного в ролике NetworkManagerAsync загружает картинку в UIImageView
Так swift заставил добавить в метод didSelectRowAt - async, а к вызываемому методу добавить await
В итоге в симуляторе ничего не грузится и даже не переходит в этот другой VC
А что, если уже внутри второго контроллера подгрузить данные из сети?
Либо в Task обернуть вызов внутри didSelectRow
@@MadiSpace Так внутри второго контролера и пытаюсь вызвать загрузку изображения с помощью NetworkManager.shared..
В didSelectRow в первом контролере создаю второй контролёр, из него вызывается метод configureWith() куда передается нужная моделька и потом пушится второй контролёр. Внутри этого configureWith вызывается Network Manager для загрузки изображений.
'async' call in a function that does not support concurrency
Add 'async' to function 'tableView(_:didSelectRowAt:)' to make it asynchronous
Влад, спасибо.
Обернул в Task {} вызов функции внутри didSelectRow и всё полетело!
Я пока не сильно знаком с этими новомодными методами, изучаю )
Отличный ролик!
Сам являюсь куратором студентов, в одной из онлайн школ по обучению Swift. Всегда советую начинающим разработчикам твой канал )
Аа так вот кто это делает)
Спасибо за отличное видео! Встроил асинхрон в своё тренировочное приложение с фильмами -- подключился к API IMDB. Однако если в нужный момент использовать конструкцию Task - do - catch, то каждый раз вызывается API, это расточительно. Мне нужно один раз получить данные, записать их в переменную, а потом пользоваться.
Получается такая конструкция:
--
Task {
do {
let result = try await
NetworkServiceWithAsync.shared.fetchData()
print("First name: \(result.items[3].title)")
} catch {
print(NetworkingError.invalidData)
}
}
---
к сожалению, переменной result не получается воспользоваться за пределами конструкции Task. Как быть?
Вынеси объявление переменной из Таск. Напиши её над объявлением Таска