Enumerations

“Enum” kavramını ve tanımlanmasını öğrenerek, “Enum” kavramının kontrol akışlarındaki kullanımını keşfedeceksiniz.

Mentorluk

Randevu OluşturKredi Al

Enum Nedir?

Kısa haliyle enum‘lar, birbirleriyle mantıksal olarak alakalı değerleri bir arada gruplamamızı sağlayan yapılardır. Birbiri ile bağlı bu değerlere hem isimleriyle hem de bir index numarası ile erişebilmemiz mümkündür.

Birbiri ile mantıksal olarak alakalı değerlere örnekler

  • haftanın günleri
  • iPhone modelleri
  • Türkiye‘nin illeri

Bu değerleri enum yapısını kullanarak temsil edebiliriz.

Örneğin

    enum Gender {
         case male
         case female
         case notSpecified
    }

Swift’de bir enum türü tanımlamak yukarıdaki kadar kolaydır ve okunabilirlik en üst düzeydedir. Swift’de Enum’lar, diğer hiçbir programlama dilinde olmadığı kadar güçlüdür ve sıklıkla kullanılır.

Yaratacağınız enum’lara durum eklemek için her durumun başına ‘case’ anahtar kelimesini eklemelisiniz. Case’ler durumları ifade eder. Benim ‘Cinsiyet’ örneğimde 3 farklı durum bulunuyor. Bunlar; erkek, kadın ve belirtilmemiş.


    enum Gender {
        case male, female, notSpecified
    }

Bir enum’ı yukarıdaki👆gibi de tanımlayabilirsiniz. İkisi arasında hiçbir fark yoktur.

Enum’larda RawValue’lar

RawValue’lar ile enum case’lerinize istediğiniz türden değerler verebilirsiniz. Bu değerlere örnek olarak; Double, Int, Bool, String, vs.


     enum Direction: String {
         case forward = "İleri Git"
         case backward = "Geri Git"
         case left = "Sola Dön"
         case right = "Sağa Dön"
    }

Tanımlanan Enum’ların Kullanımı

Bir değeri tanımlayıp onun ne türünden olduğunu belirtmek bu kadar işte aşağıdaki kadar kolay!


    let userGender = Gender.male
    let leftDirection = Direction.male

Enum’lar da tüm veri türleri gibi Array’ler halinde tutulabilir.


    let directionsToAkasya: [Direction] = [.left, .forward, .right]

Yukarıda Direction adında bir enum tanımlamıştık ve case’lerine rawValue değerleri vermiştik. Bu değerlere ulaşmak da çok kolay!


    let solaDönYazısı = Direction.forward.rawValue
    let ileriYazısı = Direction.forward.rawValue

Sıradaki

Protokoller

Örnek protokoller ile protokollerin kullanım amaçlarını ve alanlarını öğreneceksiniz.

Videolar

Swift Temellerine Giriş
Swift Temellerine Giriş
Teknolojinin Dili Kodlama
Teknolojinin Dili Kodlama
Playground Temelleri
Playground Temelleri
Veri Tipleri & Sabitler ve Değişkenler
Veri Tipleri & Sabitler ve Değişkenler
Operatörler
Operatörler
Kontrol Akışı
Kontrol Akışı
Fonksiyonlar
Fonksiyonlar
String'ler
String'ler
Objeler, Metotlar ve Özellikler
Objeler, Metotlar ve Özellikler
Xcode ile Tanışın
Xcode ile Tanışın
Struct
Struct
Class
Class
Koleksiyonlar
Koleksiyonlar
Döngüler
Döngüler
Xcode
Xcode
“Build”, “Run” ve “Debug”
“Build”, “Run” ve “Debug”
Arayüz Elemanlarını Yakından Tanıyın
Arayüz Elemanlarını Yakından Tanıyın
Dokümantasyon
Dokümantasyon
“Interface Builder” Temelleri
“Interface Builder” Temelleri
"UIKit" ile Kullanıcı Arayüzüne Giriş
"UIKit" ile Kullanıcı Arayüzüne Giriş
İlk Uygulama
İlk Uygulama
Kontrol Elemanları
Kontrol Elemanları
Autolayout & Stackview
Autolayout & Stackview
Optionals
Optionals
Tip Dönüşümleri
Tip Dönüşümleri
Guard
Guard
Uygulama Hayat Döngüsü ve Veri Modelleme
Uygulama Hayat Döngüsü ve Veri Modelleme
Scope Sabit & Değişken
Scope Sabit & Değişken
Enumerations
Enumerations
Protokoller
Protokoller
Segue ve Navigation Controller
Segue ve Navigation Controller
TabbarController
TabbarController
View Controller Hayat Döngüsü
View Controller Hayat Döngüsü
Basit Akışlar Oluşturmak
Basit Akışlar Oluşturmak
Uygulama Anatomisi ve Hayat Döngüsü
Uygulama Anatomisi ve Hayat Döngüsü
Model View Controller
Model View Controller
Uygulamanızda Veri Kaydedin
Uygulamanızda Veri Kaydedin
ScrollView
ScrollView
TableView Giriş
TableView Giriş
TableView İleri
TableView İleri
Verileri Kaydetmek
Verileri Kaydetmek
System View Controllers
System View Controllers
Uygulama Geliştirin
Uygulama Geliştirin
Karmaşık Veri Girişi Ekranları Oluşturmak
Karmaşık Veri Girişi Ekranları Oluşturmak
Closures
Closures
Extensions
Extensions
Pratik Animasyonlar
Pratik Animasyonlar
İnternet ile İletişime Geçin
İnternet ile İletişime Geçin
İnternet ile Çalışmak
İnternet ile Çalışmak
JSON
JSON
Concurrency
Concurrency