iOS – Swift Dersleri (Methods)

iOS – Swift Dersleri (Methods)

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

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

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++
}

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

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()

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

0

Yorum Yap
0 Yorum yapan