Uzatmalar, mevcut bir sınıf (class), bir yapı (structure) ya da bir sayma tipine (enumeration) yeni bir işlevsellik ekleme imkanı sağlayan mekanizmalardır. Objective C’deki category mekanizmasına benzer yapılardır. Ancak Swift’te extensionların isimleri yoktur.
Swift’te extensionların gerçekleştirebileceği işlemler ise aşağıda verilmiştir:
1) Sınıf, yapı ve sayma tipine hesaplanmış özellikler ve hesaplanmış static özellikler eklemek
2) Yukardaki yapılara,örnek metotları (instance methods) ve tip metotları (type methods) eklemek
3) Yeni başlangıç oluşturucular (initializer) tanımlamak
4) İndisler (subscripts) tanımlamak, içiçe tipler (nested types) oluşturmak ve kullanmak
5) Protokollere yeni özellikler eklemek
Bir uzatmanın yazılış biçimi aşağıdaki gibidir:
extension TipAdi {
// TipAdi’na eklenecek yeni işlevsellik komutları
}
extension TipAdi: Protokol1, Protokol2 {
// Protokol gereksinimi komutları
}