Middle
Hansı tamamlanma idarəedicisini yazdınız?
sobes.tech Süni İntellekt
AI-dan cavab
Şəbəkə sorğusu üçün mümkün səhvlərlə tamamlanma idarəedicisinin nümunəsi:
// Sorğu nəticəsi üçün tip təyin edirik (uğur və ya səhv)
typealias RequestResult<T: Codable> = Result<T, Error>
// Şəbəkə sorğusu həyata keçirmək üçün funksiya
func performRequest<T: Codable>(url: URL, completion: @escaping (RequestResult<T>) -> Void) {
// Bu blokda adətən URLSession.shared.dataTask çağırılır
// cavabın işlənməsi, JSON dekodlaşdırılması və səhvlər.
// Nümunə işləmə (tutaq ki, uğurlu cavab və məlumatlar alınıb)
let sampleData = Data() // Burada real məlumatlar olmalıdır
let decoder = JSONDecoder()
do {
let decodedData = try decoder.decode(T.self, from: sampleData)
completion(.success(decodedData)) // Uğurlu nəticə ilə tamamla
} catch {
completion(.failure(error)) // Dekodlama alınmazsa, səhv ilə tamamla
}
// Şəbəkə və ya server səhvlərinin işlənməsi nümunəsi
// let networkError = URLError(.notConnectedToInternet)
// completion(.failure(networkError)) // Şəbəkə səhvi ilə tamamla
}
// İstifadə nümunəsi:
struct SampleData: Codable {
let id: Int
let name: String
}
let apiUrl = URL(string: "https://api.example.com/data")!
performRequest(url: apiUrl) { result in
switch result {
case .success(let data):
print("Uğur! Alınan məlumatlar: \(data)")
case .failure(let error):
print("Sorğu xətası: \(error.localizedDescription)")
}
}