Работа с сетью через async - await в Swift / Xcode | Apple | iOS
ฝัง
- เผยแพร่เมื่อ 3 เม.ย. 2023
- Рассмотрим второй вариант работы с сетью - современный, с помощью асинхронных async - await функций
Запись на курс:
Телеграм: @WladMadi
Телефон: +7 (967) 901-73-24
Информация о курсе: madi.study
Ссылка на телеграм-чат:
t.me/+SBRqlvcbDWQ0ZGNi
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. Как быть?
Вынеси объявление переменной из Таск. Напиши её над объявлением Таска