#error & #warning

Swift programlama dilinde, #error anahtar kelimesi kullanılarak derleyici hataları oluşturulabilir. Bu, programcının belirli bir durumda kodun çalışmaması gerektiğini ve düzeltilmesi gerektiğini belirlemek için kullanılır. Örneğin, bir fonksiyonun belirli bir koşula göre çalışması gerektiğinde, ama koşul sağlanmadığında çalışmaması gerektiğinde #error kullanılabilir. Birkaç örnek vermek gerekirse:


func myFunction(value: Int) {
    if value < 0 {
        #error("Value cannot be negative.")
    }
    // rest of the function code
}

Bu örnekte, eğer value değişkeni negatif bir değere sahipse, derleyici #error anahtar kelimesi ile belirlenen hata mesajını gösterecektir. Bu, programcının "value" değişkeninin negatif olmaması gerektiğini ve düzeltilmesi gerektiğini hatırlatmasını sağlar.


struct WeatherAPI {
    var apiKey: String {
        #error("Please add your API key below then delete this line.")
        return "Write your API key here"
    }
} 

Bu örnekte ise bir API sınıfına apiKey adında bir değişken tanımlanmıştır. Ancak, bu değişkenin içerisinde geçici olarak #error anahtar kelimesi ile bir hata mesajı da tanımlanmıştır. Bu uyarı, programcıya bu yapının kullanılmadan önce API anahtarının eklenmesi gerektiğini hatırlatır. Bu hata mesajı, derleyici tarafından görülür ve kod çalışmadan önce programcı tarafından düzeltilmesi gerektiğini görünür kılar.

#warning anahtar kelimesinde ise #error daki gibi kodun çalışmasına engel olmamaktadır. Yani proje derlenmesinde engel oluşturmaktadır. Sadece uyarı mesajı gösterilmektedir.


let minimumSupportedVersion = "13.0"
let currentDeviceVersion = UIDevice.current.systemVersion

if currentDeviceVersion < minimumSupportedVersion {
    #warning("This app's minimum supported version is \(minimumSupportedVersion), consider upgrading your device.")
}

Bu örnekte, uygulamanın minimum desteklediği iOS sürümü minimumSupportedVersion değişkeninde tanımlanmıştır. Eğer cihazda kullanılan iOS sürümü bu değerden daha düşükse, derleyici #warning anahtar kelimesi ile belirlenen uyarı mesajını gösterir.