Extensions—yani eklentiler—bir değere, sınıfa veya protokole yeni özellikler katmamızı sağlar. Bunu Swift diline katkı sağlıyormuş veya özel ayar yapıyormuş gibi düşünebilirsiniz.
Mesela uygulamanızda bir profil kısmı mevcut. Burada yuvarlak, gradient kenarlı bir resim kullanıyorsunuz. Bu profil resminin kodu şuna benzesin:
Bunu her controller kodunda kullandığınız zaman projenize ekstra olarak 21 satır daha koymuş oluyorsunuz. Peki bunu nasıl özelleştirebiliriz?
Tabii ki Extension kullanarak!
Öncelikle eklentiniz bir sınıfa ait olmalı.
extension BirSinif {
// Bir şeyler yapın...
}
Daha sonra içerisinde bir değer atama, fonksiyon kullanma gibi seçenekleri kullanabilirsiniz. Şimdi yazacağımız eklenti Double sayıları düzenleyip String türüne değiştirecek.
Örnek: Double Sayıları Düzenleyelim
Yapmak istediğimiz şey; küsuratlı bir sayı aldığımızda bunu dilediğimiz basamaklı bir sayıya yuvarlayıp çıktı almak. Öncelikle fonksiyonumuzu yazıyoruz. Daha sonra bu fonksiyonu herhangi bir double sayı ile çağırıyor ve kaç basamaklı olması gerektiğini söylüyoruz.
extension Double {
func stringValue(digits: Int) -> String {
return String(format: "%.\(digit)f", self)
}
}
print(5.324523452342345.stringValue(digits: 2))
// 5.32 yazdırılır
print(5.324523452342345.stringValue(digits: 3))
// 5.324 yazdırılır