İOS Swift

Swift Instance Metotlar & Lokal ve Dış Parametreler

swift

Metotlar

Metotlar belirli bir tip özelinde çalışan fonksiyonlardır. Fonksiyonların ne olduğunu ilgili yazımdan ayrıntılı olarak öğrenebilirsiniz. Sınıflar, structlar ve enumların hepsinde metotlar tanımlanabilir ve kullanılabilir. Swift programlama dilinde metod tanımlama, Objective C’deki sınıf metodlarına çok benzer. Dikkat etmeniz gereken fark ise şu; Swift programlama dili içerisinde sctructların ve enumların metod tanımlayabilmesi.

swift metotlar

Instance Metotlar

Instance metotlar bir sınıfın, structure’ın yada enum un instancelarından birine ait olan fonksiyonlardır. Bu metotların hepsi, ait oldukları bu instanceların fonksiyonelliklerini destekler. Instance metotların hepsi fonksiyonları tanımlarken kullandığımız syntax’ın birebir aynısını kullanır. Fonksiyonlarda göstermiş olduğum syntax :

Instance metot konusunu daha ayrıntılı anlatabilmek için örnek üzerinden gitmek istiyorum.

Üstteki örnekte bulunan Counter sınıfı 3 tane instance metoda sahiptir.

  • increment : counter’ı 1 artırır
  • incrementBy(amount: Int) : counter’ı bizim parametre olarak verdiğimiz değer kadar artırır
  • reset : counter’ı sıfırlar.

Bunların yanında counter sınıfı 1 tane count isminde değişkene sahiptir.

Metotları Çağırma

Metotlarımızı nokta syntax’ını kullanarak çağırıyoruz. Counter sınıfımızda bulunan count property’sini arttırmak veya sıfırlamak için bu metotları çağıralım.

Metodlar İçin Lokal ve Dış Parametre İsimleri

Metotlar için local ve dış parametre konusuna girmeden önce lokal ve dış parametre konusunu biraz açmak istiyorum.

Lokal 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.

[alert style=’red’]Eğer metot için dış parametre tanımlanmışsa, metot çağrılırken mutlaka kullanılmalıdır.[/alert]

Dönelim konumuza, Metolar İçin Local ve Dış Parametlerin Kullanımı Nasıl Oluyor?

Tıpkı fonksiyonlarda olduğu gibi metotlarda da local ve dış parametreler kullanılabiliyor ancak bu parametrelerin default davranışı fonksiyonlar ve metotlarda farklı.

Swift, metodlardaki ilk parametre değerini local parametre, ikinci ve sonraki parametre değerlerini local ve dış parametre olarak tanımlıyor. Bunu bir örnek üzerinde inceleyecek olursak,

Counter ismindeki sınıfımızda incrementBy adında bir metodumuz var ve bu metod amount, numberOfTimes adlarında 2 parametre alıyor.

İlk parametre local, sonrakiler hem local hem de dış parametre oluyor demiştik. Bunu görebilmek için metodumuzu çağıralım.

Gördüğünüz gibi 5 değerini local, numberOfTimes değerini de dış parametre gibi girdik 🙂 Bunu anlamak için 3 ve 5 rakamlarının öncesine bakabilirsiniz. 5’in öncesinde herhangi bir şey yok, ancak 3’ün öncesinde numberOfTimes dış parametre kullanımını var.

self Propertysi

Her instance’da üstü kapalı olarak self property’si bulunur. Bu self property’si direkt olarak instance’ın kendini işaret eder.

Bizde sınıfımız içerisindeki increment metodunu şu şekilde yazabiliriz:

Normalde Count sınıfımızda tanımladığımız

var count = 0

değişkenini işaret etmek için self.count şeklinde kullandık. Normal kullanımda da self yazmamıza gerek kalmıyor. O yüzden count++ şeklinde kullanabiliyoruz.

Ancak instance metotlarda parametre ismi ve instance’a ait olan property’nin ismi aynı olduğundahata ile karşılaşılır. Bu durumda self kullanarak instanceımızın property’sini işaret etmemiz gerekir.Burası kritik bir nokta, atlanılmamalı.

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..