Merhaba Arkadaşlar,
Mobilhanem‘deki Swift paylaşımlarımıza metodlar ile devam ediyoruz. Bu paylaşımımızda method‘ların tanımı ile instance ve type methodlar ile ilgili bilgiler bulacaksınız.
Methodlar özel bir tip ile ilişkilendirilmiş fonksiyonlarlardır. Class’lar, structure’lar ve enumeration’lar özel bir fonksiyonaliteye sahip olan instance method‘ları tanımlayabilirler. Aynı zamanda Class’lar, structure’lar ve enumeration’lar, tipin kendisi ile ilişkilendirilmiş type method‘ları da barındırabilirler. Type method’ları Objective-C’deki class method’ların karşılığı olarak düşünebiliriz.
Instance Methods
Instance Method’lar bir class, structure ya da enumeration’ın instance’ına (objesine) bağlı olan fonksiyonlardır. Instance Method’lar fonksiyonlar ile aynı syntax’a sahiptir ve class’ın amacı doğrultusunda işler yapan fonksiyonlardır. Instance property’lere ulaşma, onları güncelleme gibi işler yaparlar.
Aşağıda Counter class ait instance method’ları inceleyelim:
class Counter { var count = 0 func increment() { ++count } func incrementBy(amount: Int) { count += amount } func reset() { count = 0 } }
increment counter property’sini 1 artırır.
incrementBy(amount: Int) counter property’sini parametrede verilen değer kadar artırır.
reset counter’ı sıfırlar
Instance method’ları aşağıdaki gibi çağırabiliriz:
let counter = Counter() // counter'ın ilk değeri 0 olur counter.increment() // counter'ın değeri = 1 counter.incrementBy(5) // counter'ın değeri = 5 counter.reset() // counter'ın değeri = 0
Self Property
Bütün tiplerin instance’ları self olarak belirtilen ve instance’ın kendisini işaret eden bir property’ye sahiptir.
Yukarıda örneklendirdiğimiz increment methodu aşağıdaki şekilde de yazılabilir:
func increment() { self.count++ }
Pratikte bu örnekte count property’sini belirtmek için başına self koymamıza gerek yoktu. Çünkü class’ın içinde herhangi bir yerde ulaşılmaya çalışılan count değişkeni class’ın kendi değişkenidir ve bir tanedir. Aşağıda vereceğimiz örnekte göreceğimiz üzere, class variable’ı ile aynı isimde bir parametre tanımlanırsa, bu gibi durumlarda self olarak belirterek class variable’a ulaşmamız mümkün olacaktır.
struct Point { var x = 0.0, y = 0.0 func isGreaterThanX(x: Double) -> Bool { return self.x > x //burada self olarak belirterek struct'ın değişkeni olan x'e ulaşıyoruz. Diğer x parametre olan x'i ifade ediyor. } } let somePoint = Point(x: 4.0, y: 5.0) if somePoint.isToTheRightOfX(1.0) { print("4 sayısı 1'den büyüktür.") } // ekran çıktısı "4 sayısı 1'den büyüktür."
Type Methods
Instance Method’lar yukarıda bahsettiğimiz üzere, bir tipin instance’ı (objesi) tarafından çağrılan methodlardı. Bir tipin instance’ını yaratmaya gerek olmaksızın tipin kendisi ile çağırabileceğimiz method’lar yaratmak da mümkündür. Bu tip methodlara type methods denir. Bu methodlar tanımlanırken func kelimesinin başına static yazmak yeterlidir. Bu type method bir class’a ait ise de func ibaresinin başına class da yazabiliriz.
Tye method’ları aşağıdaki gibi oluşturur ve çağırabiliriz:
class SomeClass { class func someTypeMethod() { // type method içeriği burada olacak... } } //çağırırken... (instance yaratmadan çağırabiliyoruz) SomeClass.someTypeMethod()
Bu paylaşımımızda method‘ların tanımı ile instance ve type methodlar ile ilgili bilgiler paylaştık. Mobilhanem‘de Swift paylaşımlarına devam edeceğiz. Bizi takipte kalın. Soru ve yorumlarınız için aşağıdaki formu kullanabilirsiniz.
Swift ile ilgili tüm paylaşımlarımıza buradan ulaşabilirsiniz.
Kaynak: developer.apple.com
2
[…] iOS – Swift Dersleri (Methods) […]
Hocam ben yeni basladım size bir sorum olacak slider menüyü eclipseye geçirdim fakat anasayaya webview yani internet sitesi eklemek istiyorum onu nasıl yapıcam
Hocam aslında benim amacım bunun gibi uygulama geliştirmek buton tıkladım zaman internet sitesine yönlendirmek
Dostum yeni başladığın belli. Neden ilgili dersin altında sormuosunda alakasız swift dersi altında soruosun sorunu?
hocam cok pardon ilgili derse yorum atıcam kb