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, որոնք հեշտացնում են հարցումների կառուցումը և պատասխանների մշակումը։