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