Sobes.tech
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.