Middle
Hangi tamamlayıcı işleyiciyi yazdınız?
sobes.tech yapay zeka
AI'dan gelen yanıt
Farklı görevler için birçok tamamlayıcı işleyici yazdım, bunlar arasında:
- Ağ isteklerinin sonuçlarının işlenmesi (veri alma, yürütme durumu).
- Veritabanlarıyla eşzamanlı işlemler (kaydetme, okuma, güncelleme).
- Dosya sistemi işlemleri (okuma, yazma, silme).
- Animasyonlar ve kullanıcı arayüzleri (animasyonları tamamlama, kullanıcı hareketlerini işleme).
- Sonuç ve hataları iletebilen özel asenkron işlemler.
Örneğin, URLSession ile çalışırken sık sık şu şablonu kullanıyorum:
URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
// Hata işleme
completion(.failure(error))
return
}
guard let httpResponse = response as? HTTPURLResponse,
(200...299).contains(httpResponse.statusCode),
let data = data else {
// Geçersiz yanıt veya veri işleme
completion(.failure(URLError(.badServerResponse)))
return
}
// Verilerin başarılı işlenmesi
do {
let model = try JSONDecoder().decode(SomeModel.self, from: data)
completion(.success(model))
} catch {
// Dekodlama hatası işleme
completion(.failure(error))
}
}.resume()
Burada completion, (Result<SomeModel, Error>) -> Void türünde bir closure'dır. Result kullanımı, başarılı ve hata durumlarını net bir şekilde ayırmaya olanak tanır.