Defer
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