Sobes.tech
Junior — Middle

Swiftте @escaping белгисинин мааниси эмне экенин түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

Swift'te @escaping notasyonu, bir fonksiyona geçirilen kapanışın (closure), fonksiyon tamamlandıktan sonra çağrılabileceğini belirtmek için kullanılır. Bu, kapanışın saklandığı ve asenkron olarak çağrıldığı durumlarda önemlidir, örneğin ağ istekleri geri çağırmalarında.

@escaping olmadan, kapanış non-escaping (kaçmayan) olarak kabul edilir, yani fonksiyonun gövdesi içinde çağrılmalı ve daha sonra çağrılmak üzere saklanamaz.

Örnek:

func fetchData(completion: @escaping () -> Void) {
    DispatchQueue.global().async {
        // Asenkron çalışma
        completion() // fetchData'dan çıktıktan sonra kapanışın çağrılması
    }
}

Burada, completion @escaping olarak işaretlenmiştir çünkü fetchData'dan çıktıktan sonra asenkron olarak çağrılır.