Photo by Glenn Carstens-Peters / Unsplash

Defer

Swift Apr 16, 2022

Swift programlama dilinde yazılan projelerde karşımıza çok çıkmasada oldukça kullanışlı olabilecek bir kod blogudur. Bir fonksiyonumuzda en son çalışmasını istediğimiz kısmın çalışmasını sağlamak için kullanılmaktadır. Aşağıda örnek kullanımlar verilmiştir. Bir sunucuya bağlanma ile yapılan bir işlem sonucunda sunucu ile bağlantısını kesmek için veya bir dosyaya yazma işlemi tamamlandıktan sonra dosyayı kapatmak için kullanılabilir. Daha farklı örnekler için kaynaklar aşağıdadır.  


func writeLog() {
    let file = openFile()
    defer { closeFile(file) }

    let hardwareStatus = fetchHardwareStatus()
    guard hardwareStatus != "disaster" else { return }
    file.write(hardwareStatus)

    let softwareStatus = fetchSoftwareStatus()
    guard softwareStatus != "disaster" else { return }
    file.write(softwareStatus)

    let networkStatus = fetchNetworkStatus()
    guard neworkStatus != "disaster" else { return }
    file.write(networkStatus)
}

func updateImage() {
    defer { print("Did update image") }

    print("Will update image")
    imageView.image = updatedImage
}

// Will update Image
// Did update image


Statements — The Swift Programming Language (Swift 5.6)
Defer usage in Swift
Clean up state or print out debug information just before leaving the scope by defining the defer statement can improve development a lot.
The defer keyword in Swift: try/finally done right
Learn Swift coding for iOS with these free tutorials
Cleaning Up With Swift Defer
Learn how to use the Swift defer statement to clean up resources.

Tags

Furkan Ozoglu

iOS Developer & Geomatics Engineer