Sony XPERIA PLUS Android telefon incelemesi 

 

Reklamlar

Swift4 type() fonksiyonu ile dinamik türün öğrenilmesi

Yakında çıkacak olan #Swift kitabımdan küçük alıntılara devam:

Swift’te bir nesnenin dinamik tür ismini öğrenmek için geçmiş versiyonlarda dynamicType kullanılmaktaydı ancak yeni versiyonda bu işlem için artık type() isimli fonksiyon kullanılmaktadır.

Bu fonksiyonun parametre etiket isminin “of” olması okuyucunun aklını karıştırıp, C türevi dillerdeki typeof() operatörününün Swift’te olduğu izlenimini uyandırmamalıdır. “obj” bir nesne örneği olmak üzere:

print(obj.dynamicType) // yerine
print(type(of: obj)) // kullanılmalıdır

Şüphesiz aynı işlem gerektiğinde self için de yapılabilir.

Swift Protocol Composition

Birden fazla protokol ile birleştirilmiş referanslar bildirilebilir. Bu durumda o referansa ancak o bildirimde belirtilen protokollerin hepsini destekleyen bir sınıf, yapı ya da enum değişkeni atanabilir.

Bildirimde protokol birleştirme işlemi protokol isimlerinin arasına “&” sembolü konularak yapılır. Örneğin:

protocol Protokol1

{

func Foo()

}

protocol Protokol2

{

func Bar()

}

class CSample1 : Protokol1

{

func Foo()

{

print(“foo”)

}

}

class CSample2 : Protokol1, Protokol2

{

func Foo()

{

print(“foo”)

}

func Bar()

{

print(“bar”)

}

}

/////////////TEST//////////////

func Test(prm: Protokol1 & Protokol2)

{

prm.Foo()

prm.Bar()

}

// Test(prm: CSample1())

// Argument type CSample1 doesnt conform to expected type ‘…’

Test(prm: CSample2()) // OK

Şüphesiz protokol listesinde sırasının bir önemi yoktur. Örneğin:

let p1: Protokol1 & Protokol2 = CSample2()

let p2: Protokol2 & Protokol1 = p1       // geçerli