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.