Cohorts
  • Discover
  • About Us
  • Blog
  • Patika.dev
  • Web3

İleri Seviye Swift

Closures
Struct and Class
Erişim Denetimi
Protokoller
Extensionlar
Optional Yapısı
Swift Dil Yazım Standartları

Cocoapods
Alamofire
SnapKit
KingFisher
Flex
IQKeyboardManager
SwiftGen
SwiftLint

Proje Oluşturma ve Giriş
Uygulama Arayüzünün Oluşturulması
Flickr API Nedir ve Nasıl Kullanılır?
Network Request ve Codable Yapısı
Arayüzün Sunucudan Gelen Data İle Doldurulması

Extension

Extension, var olan Class, Struct, Enum veya Protocol yapısına yeni özellikler veya metodlar eklemek için kullanıyoruz. Bu sayede kaynağına erişimin kısıtlı olduğu varlıklara kolayca yeni özellikler ve metodlar ekleyebilirsiniz. Extension yapısı Objective-C'de yer alan Categories yapısına benziyor. Categories'den farklı olarak Swift Extension yapısı bir isim almıyor.

Extension ile yapabileceğiniz eklemeler aşağıdaki gibidir.

  • Özellik eklemek
  • Metod eklemek
  • Başlatıcı(Initializer) eklemek
  • Tanımlı bir protokolü sağlayacak şekilde eklemeler yapmak

Extension Sözdizimi

Extension ile var olan bir varlığa ekleme yapmak istiyorsak, extension anahtar kelimesinden sonra ekleme yapmak istediğimiz varlığın adını yazmamız ve devamında açtığımız süslü parantezler içine eklemek istediğimiz tanımları yapmamız yeterli olacaktır.

extension SomeType {
    // Yeni özellik veya metodlar buraya gelecek.
}

Hali hazırda var olan bir varlığın, bir protokolü sağlamasını istiyorsak, varlığın adından sonra iki nokta koyup devamında sağlamasını istediğimiz protokol(ler) belirtilmelidir. Protokolün beklediği özellik ve metod tanımları extension bloğu içinde yapılabilir.

extension SomeType: SomeProtocol, AnotherProtocol {
    // Protokolün beklediği özellik ve metod tanımları buraya eklenebilir.
}

Hesaplanmış Özellikler

Extension bloğu içinde, varlığın kendi bloğunda olduğu gibi özgürce özellik tanımlaması yapamıyoruz. <b>Hesaplanmış Özellikler(Computed Properties)</b> adı verilen, geriye ne döndüreceği önceden bilinen özelliklerdir. Aşağıda Double veri tipi için, uzunluk bilgisi döndüren hesaplanmış özellikler tanımlanmıştır.

extension Double {
    var km: Double { return self * 1_000.0 }
    var m: Double { return self }
    var cm: Double { return self / 100.0 }
    var mm: Double { return self / 1_000.0 }
    var ft: Double { return self / 3.28084 }
}
let oneInch = 25.4.mm
print("Bir inç \(oneInch) metredir.")
// Çıktı: "Bir inç 0.0254 metredir."
let threeFeet = 3.ft
print("Üç feet \(threeFeet) metredir.")
// Çıktı: "Üç feet 0.914399970739201 metredir."
Previous
Next

Lesson discussion

Swap insights and ask questions about “İleri Seviye Swift”.

Enroll to participate
Start the course to unlock the discussion. Enrolling helps us keep conversations relevant to learners.
Cohorts
WebsiteDiscoverBlogPatika.devRise In
CoursesCircleRustSoliditySolanaWeb3 FundamentalsBlockchain Basics
CompanyAbout UsTerms of UsePrivacy PolicyGDPR NoticeCookies
Don't miss any update!

Disclaimer: The information, programs, and events provided on https://cohorts.patika.dev is strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice, nor do we make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://cohorts.patika.dev disclaims any responsibility for financial decisions made by users based on the information provided here.

© 2026 Cohorts, All rights reserved