İOS Swift

Swift Initialization(İlk Değer Atama)

Initialization bir sınıf, structure yada enum’dan kullanmak için bir instance oluşturma sürecine verilen isimdir. Bu süreçte propertylere ilk değer ataması yapılır ve initializer’lar kullanılır.

Stored Property’ler İçin İlk Değer Atama

Sınıflar, structurelar’dan bir instance türetilirken tüm stored propertylerinin başlangıç değerleri atanmalıdır çünkü stored property’ler belirsiz durumda kalamaz.

Initializer’lar

Özel bir tip için yeni bir instance türetirken initializer’lar çağrılır. Bu en basit haliyle parametre almayan bir metot gibidir. init keywordü kullanılır. Genel format şu şekildedir.

Aşağıdaki örnekte Fahrenheit isminde bir structure tanımlıyoruz. Bu structure içerisinde 1 adet double tipinde stored property bulunmakta.

Burada tempetarure ilk değer atama işlemini bir initializer aracılığı ile yaptık. Bu işlemi değişkenimizi tanımlarken de yapabiliriz.

İlk Değer Atama Parametreleri (Initialization Parameters)

Initializer tanımı içersinde parametre de kullanabiliriz. Yukarıda initializer için en basit haliyle parametre almayan bir metot demiştik, şimdi ise bu boş metoda parametre tanımlayabileceğimizi söylüyoruz.

Yukarıdaki örnekte Celcius adında bir structure tanımladık. Bu structure’ın içerisinde 2 adet initializer tanımlı. Birincisi init(fromFahrenheit:) , diğeri ise init(fromCelcius:) .

Birincisi Fahrenayt değerinden Celcius’u hesaplıyor. İkincisi ise Kelvin değerinden Celcius’u hesaplıyor.

Dış Parametre İsmi Olmadan Tanımlanan Initializerlar

Konuya girmeden önce lokal ve dış parametre konusunu biraz hatırlayalım 🙂

Local Parametre

 Dış Parametre

Üstteki 2 örneğe baktığınız zaman alttaki örnekte string, toString, withJoiner dış parametrelerin durumlarını daha anlaşılır kılmak için kullanıldığını görebilirsiniz. Yani göndermiş olduğunuz değişkenin açıklaması gibi kullanabiliyor.

Şimdi dönelim konumuza..

Bir Initializer tanımlarken dış parametre ismi kullanmak istemiyorsak, bu dış parametre isminin yerine (_) yazmamız yeterli olacaktır.

Aşağıdaki örnekte dış parametre ismi kullanılan ve kullanılmayan initializer kullanımı görebilirsiniz. İlk 2 initializer’da dış parametre ismi bulunurken, 3.’de bulunmuyor.

 

Türk Telekom Şirketinde CRM Çözümlerinde Teknik Analist olarak görev yapmaktayım. Geçmişte ise iOS uygulama geliştirici olarak çalıştım. Bilginin ve paylaşmanın gücüne can-ı gönülden inanırım..