Junior — Middle
Kā ir īstenota tīkla mijiedarbība jūsu projektā?
sobes.tech AI
Atbilde no AI
Manā iOS projektā tīkla mijiedarbība tiek īstenota, izmantojot URLSession, kas nodrošina API HTTP pieprasījumu veikšanai.
Lai būtu ērti un atkārtoti lietojami, es izveidoju tīkla slāni ar abstrakciju, kas pārvalda pieprasījumu veidošanu, atbilžu un kļūdu apstrādi. JSON parsēšanai tiek izmantots arī Codable.
Vienkārša pieprasījuma piemērs:
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()
}
Kompleksākiem uzdevumiem tiek izmantotas trešo pušu bibliotēkas, piemēram, Alamofire, kas atvieglo pieprasījumu veidošanu un atbilžu apstrādi.