Предисловие Материал представляет собой пример, демонстрирующий возможности языка и позволяющий лучше понять работу различных фреймворков (например, Joint), которые упрощают работу с сетью.
Материал предназначен для начинающих разработчиков для общего ознакомления.
Все примеры в публикации представляют собой предельно упрощенные версии кода и не должны использоваться при разработке приложений в том виде, в котором они существуют. Даже в модифицированном виде код не конкурирует с существующими решениями и создан исключительно в вводный целей.
А также не забывайте, что все операции, выполняемые с языком Swift, должны быть безопасными; в примере об этом не может быть и речи.
Весь свой информационный мусор я собираю на своей стене в ВК , так что добро пожаловать.
Представим себе типичную ситуацию.
Нашему приложению необходимо подключиться к серверу и получить различные данные.
Например, пусть это будет: список категорий, список товаров, стоимость товаров.
Неважно, это просто какая-то абстрактная задача.
Мы не можем собрать эти данные по ряду конкретных причин в рамках одного запроса, поэтому наша задача — выполнить несколько запросов и после того, как все они будут выполнены (мы получим данные), мы выполним некоторые действия.
Невозможно выполнять действия, пока не получены все данные; порядок получения данных нам неизвестен, т.к.
это асинхронные операции и объем данных так же неизвестен, как и скорость сети и т. д. Думаю, пояснения не нужны.
Давайте подумаем, что мы будем делать, чтобы это реализовать.
Конечно, первая мысль — погуглить и скопипастить код из stackoverlow, но давайте все же решим проблему сами.
Более того, при решении этой проблемы мы не будем использовать коробочные решения от Apple. Нам нужно сделать это в рамках возможностей языка, используя URL-сессия .
Давайте создадим решение, отвечающее нашим требованиям.
Что ж, начнем.
Давайте создадим класс МойHttpExample
И добавим к нему метод запросclass MyHttpExample { }
func request(){}
метод будет общедоступным
public func request(){}
и примет два аргумента
public func request(url urlString: String, key: String){}
тип ссылки Нить и ключ, назначение которого вы поймете чуть позже.
В методе мы будем использовать URL-сессия для отправки запросов, но сначала нам нужен удобный тип данных, удовлетворяющий нашим запросам, поэтому создадим его в классе МойHttpExample оболочка как тип данных обертка struct Wrapper {
Теги: #Разработка iOS #Разработка мобильных приложений #Swift #закрытие #dataTask #didset #urlsession
-
Москва
19 Oct, 24 -
Google Charts В Новом Обличье
19 Oct, 24 -
Как Я Купил Хп 2133
19 Oct, 24