Sobes.tech
Junior

Hangi veri iletim yöntemlerini biliyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

  • Özellikler ve Başlatıcılar: Nesne oluştururken özellikler ve başlatıcılar aracılığıyla veri aktarımı.
  • Segues (Storyboardlar için): prepare(for:sender:) kullanarak görünüm denetleyicileri arasında gezinirken veri aktarımı.
  • Delegasyon: Bir nesnenin (delegatın) başka bir nesneden bildirimler ve veriler almasını sağlayan protokol uygulaması.
  • NotificationCenter: Herhangi verilerle yayın-abone mekanizmasıyla bildirimlerin yayılması.
  • Key-Value Observing (KVO): Nesne özelliklerindeki değişiklikleri izleme mekanizması.
  • Closures/Callbacks: Asenkron veya belirli bir olaydan sonra çalışan kapanışlar aracılığıyla veri aktarımı.
  • Singletons: Uygulamanın herhangi bir yerinden erişilebilen ortak sınıf örneği, veri saklama ve paylaşma.
  • User Defaults: Kullanıcıyla ilgili küçük veri hacimlerinin kalıcı depolaması.
  • Core Data/Realm/SQLite: Cihazda yapılandırılmış verilerin saklanması ve yönetimi.
  • File Storage: Verilerin disk üzerindeki dosyalara kaydedilmesi (örneğin, belgeler, resimler).
  • CloudKit: iCloud cihazları arasında veri depolama ve senkronizasyonu için bulut hizmeti.
  • Networking (APIs): Uygulama ile sunucu arasında veri iletimi.
  • Environment Objects (SwiftUI): Görünüm hiyerarşisinde paylaşılan nesnelerin sağlanması.
  • State Objects (SwiftUI): Görünümün yerel durumunun yönetimi.
  • Observed Objects (SwiftUI): Görünümün abone olduğu nesnelerin yönetimi.

Segues kullanımı örneği:

// Kaynak View Controller'da
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showDetail" {
        if let destinationVC = segue.destination as? DetailViewController {
            destinationVC.dataToReceive = "Kaynaktan Merhaba"
        }
    }
}

Delegation kullanımı örneği:

// Delegat protokolü
protocol DataDelegate: AnyObject {
    func didReceiveData(_ data: String)
}

// Veri gönderen sınıf
class SendingViewController: UIViewController {
    weak var delegate: DataDelegate?

    func sendData() {
        delegate?.didReceiveData("Delegat aracılığıyla veri gönderildi")
    }
}

// Veri alan sınıf
class ReceivingViewController: UIViewController, DataDelegate {
    func didReceiveData(_ data: String) {
        print("Alınan veri: \(data)")
    }
}

NotificationCenter kullanımı örneği:

// Bildirim gönderme
NotificationCenter.default.post(name: Notification.Name("myDataNotification"), object: nil, userInfo: ["dataKey": "NotificationCenter'dan veri"])

// Bildirimi alma
NotificationCenter.default.addObserver(self, selector: #selector(handleDataNotification(_:)), name: Notification.Name("myDataNotification"), object: nil)

@objc func handleDataNotification(_ notification: Notification) {
    if let receivedData = notification.userInfo?["dataKey"] as? String {
        print("Alınan veri: \(receivedData)")
    }
}

// Gözlemciyi kaldırmayı unutmayın
deinit {
    NotificationCenter.default.removeObserver(self)
}