Junior — Middle
Как е реализирано мрежовото взаимодействие във вашия проект?
sobes.tech AI
Отговор от AI
В моя iOS проект, мрежовата комуникация е реализирана с помощта на URLSession, който предоставя API за изпълнение на HTTP заявки.
За удобство и повторна употреба създадох слой за мрежа с абстракция, който управлява създаването на заявки, обработката на отговори и грешки. За парсиране на JSON се използва и Codable.
Пример за проста заявка:
func fetchUsers(completion: @escaping ([User]?, Error?) -> Void) {
let url = URL(string: "https://api.example.com/users")!
URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data, error == nil else {
completion(nil, error)
return
}
do {
let users = try JSONDecoder().decode([User].self, from: data)
completion(users, nil)
} catch {
completion(nil, error)
}
}.resume()
}
За по-сложни задачи се използват външни библиотеки като Alamofire, които улесняват създаването на заявки и обработката на отговори.