ETİKETLER

ios

İÇERİK TÜRLERİ

Çok Boyutlu (Multidimensional) Dizi Tanımlama

 

Swift’te, diğer dillerde olduğu gibi çok boyutlu diziler tanımlamak da mümkündür. İki boyutlu diziler günlük hayattaki tabloların ya da matematikteki matrislerin bilgisayarda temsili için gereklidir. Üç boyutlu diziler ise uzay modellemesi ya da benzer uygulamalarda kullanılır. Çok boyutlu dizilerin boyutu 3’ten fazla da olabilir.

 

İKİ BOYUTLU (TWO DIMENSIONAL) DİZİLER

 

İki boyutlu diziler yardımı ile tablo ya da matrisleri bilgisayarda temsil edebiliriz. Örneğin, aşağıdaki tabloyu bilgisayarda oluşturmak isteyelim:

Fonksiyon Parametresini Esnek Yapmak

 

@auto_closure() fonksiyonunu isimlendirilmiş parametre olarak kullanarak, fonksiyona her seferinde farklı bir ifadeyi parametre olarak geçirebiliriz. Aşağıdaki örnek kodda, y ve x değişkenleri için iki ayrı koşul ile TestEt fonksiyonu çağrılmıştır:

func TestEt(_ kosul: @autoclosure () -> Bool, bildiri: String) {
    if !kosul() {
        print(bildiri)
    }
}

let y = 9
TestEt(y>=0, bildiri: "SAYI NEGATİFTİR İŞLEM YAPILAMAZ....")

let x = -5
TestEt(x>=0, bildiri: "x SAYISI NEGATİFTİR İŞLEM YAPILAMAZ....")

 

 

Protokoller (Protocols)

 

Protokol, belirli bir işi gerçekleştirmek için gerekli metotlar, özellikler ve diğer gereksinimlerin bir planını tanımlar. Protokol, bu işi aktif olarak gerçekleştirmez bir anlamda işin tanımını ortaya koyar. İşin gerçekleştirimi ise bir sınıf, yapı ya da enumeration ile gerçekleştirilir.

Protokoller‌ sınıf yapı ve enumeration’lara benzer şekilde tanımlanır.

Self İfadesi

 

Self ifadesi, o onda mevcut belirli bir tipe veya tipin bir örneğine açık bir referanstır. Aşağıdaki formlardan birinde kullanılır:

 

self

self.üye adı

self[indis]

self(ilk değer atama argümanları)

self.init(ilk değer atama argümanları)

 

Bir ilk değer atayıcı, subscript ya da örnek ya da nesne metodunda, self, bulunduğu tipin örneğine dorudan referans verir. Bir static ya da sınıf metodunda, self, içinde bulunduğu tipe doğrudan referans verir.

 

ÖRNEK:


 

İlk Değer Atama (Inıtializer)

 

Yapı, enumeration ve sınıflarda özelliklere ilk değer atama için kullanılır. Yazılış biçimi,

init(parameters) {

deyimler

}

 

şeklindedir.

Nesnelere Ayrılan bellek alanını İade etme (Deinitializer)

 

Bir nesnenin işlevi bittiğinde kullandığı bellek alanını bilgisayara iade etmek için kullanılır. Yazılış biçimi,

deinit {

Deyimler

}

şeklindedir.

 

ÖRNEK PROGRAM


 

Extension Yardımı ile Bir Yapıya (Structure) Özellik (Property) Ekleme

 

Aşağıdaki örnek kod ile, sehir adlı yapıya extension yardımı ile su alanlarını simgeleyen su adlı özellik eklenmiş ve ilk değer ataması yapılmıştır:


 

Hesaplanmış Özellikler (Computed Properties)

Uzatmalar sayesinde, Swift’teki mevcut veri tipleri içine, yeni hesaplanmış tipler ya da özellikler eklenebilir. Aşağıdaki örnekte, deniz ve kara milini km cinsinden temsil eden tipler ve kullanılışı görülmektedir:

 

ÖRNEK


 

Uzatmalar (Extensions)

 

Uzatmalar, mevcut bir sınıf (class), bir yapı (structure) ya da bir sayma tipine (enumeration) yeni bir işlevsellik ekleme imkanı sağlayan mekanizmalardır. Objective C’deki category mekanizmasına benzer yapılardır. Ancak Swift’te extensionların isimleri yoktur.

Swift’te extensionların gerçekleştirebileceği işlemler ise aşağıda verilmiştir:

1) Sınıf, yapı ve sayma tipine hesaplanmış özellikler ve hesaplanmış static özellikler eklemek

2) Yukardaki yapılara,örnek metotları (instance methods) ve tip metotları (type methods) eklemek

Çok Biçimlilik (Polymorphism)

 

Nesneye yönelik programlamanın önemli özelliklerinden biri de çok biçimliliktir. Çok biçimlilik için çeşitli ve farklı tanımlar olmakla birlikte biz burada pratik kullanım açısından da çok faydalı gördüğümüz iki tanımı örneklerle birlikte vereceğiz:

I. Çok biçimlilik, bir sınıf içinde aynı isimde fakat farklı içerikte metotlar kullanabilme özelliğidir.

 

ÖRNEK:


 

Abone ol ios