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ı

Erişim Denetimi

Swift beş farklı erişim denetim düzeyi sağlıyor.

  • Open ve Public Erişim Denetimi: Proje modülü içinde veya bu modül dışında yer alan herhangi bir kaynak dosya bu varlıklara erişebilir. Bir kütüphane geliştirirken sıklıkla bu erişim denetim metodlarını tercih edersiniz.
  • Internal Erişim Denetimi: Proje modülü içinde yer alan kaynak dosyalar bu varlılara erişebilirken, modül dışında kalan kaynak dosyalar erişemez. Bir uygulama geliştirirken dışarıya açık olması gerekmeyen varlıklar bu erişim denetimi ile tanımlanır.
  • File-private Erişim Denetimi: Kaynak dosya içinde yer alan varlıklar birbirine erişebilir. Kaynak dosya dışında kalan varlıkların erişimi engellenir. Kaynak dosya için gerekli fakat dışında kalan kısımlar için gereksiz olan yapılar bu erişim denetim metodu ile dış erişime kapatılır.
  • Private Erişim Denetimi: Bu erişim denetimine sahip varlıklar, yalnızca bulunduğu blok içinde erişime açıktır. Varlık içinde kalan yapılar bu erişim denetimi ile dışarıdan müdahaleleri engeller.

Open erişime en açık denetimi sağlarken, private erişimi en çok kısıtlayan erişim denetim metodudur.

Open, sadece Class ve Class'a ait öğeler için geçerli bir erişim denetim metodudur. Public erişimden farklı olarak, Subclass'ın miras aldığı öğeleri gerçersiz kılmasına(override) izin verir. Bir Class'ı, Open erişim denetimi ile tanımladıysanız, bu sınıfan türeyecek alt sınıfların koda etkisini düşünerek Class'ın iç yapısını oluşturduğunuz anlamına gelir.

Erişim Denetiminin Yol Gösterici İlkeleri

Bir varlık, daha kısıtlı bir erişim sağlayan diğer bir varlık tarafından tanımlanamaz. Örneğin;

  • Public erişim denetimine sahip bir değişken, Internal, File-private veya Private bir yapı içinde tanımlanamaz. Çünkü bu yapılar değişken için erişilebilir olmayabilir.
  • Bir fonksiyon, parametre ve dönüş tipinden daha kısıtlı bir erişim seviyesinde olamaz. Çünkü fonksiyon çağrısında parametre erişim dışı kalabilir ve bu durum fonksiyonun işlevini olumsuz etkileyebilir.

Swift, istisnalar dışında, varsayılan erişim denetimi olarak, Internal erişim denetimini kullanır.

Erişim Kontrolü Yazım Kuralları

Aşağıda çeşitli erişim denetimine sahip tanımlamaları görebilirsiniz.

public class SomePublicClass {}
internal class SomeInternalClass {}
fileprivate class SomeFilePrivateClass {}
private class SomePrivateClass {}

public var somePublicVariable = 0
internal let someInternalConstant = 0
fileprivate func someFilePrivateFunction() {}
private func somePrivateFunction() {}

Eğer tanım öncesinde bir erişim denetimi belirtilmezse, tanımlanan varlık Internal erişim denetimine sahip olarak tanımlanmış olur. Örneğin aşağıdaki tanımlar bir ön ek almasa da Internal erişim denetimine sahiptir.

class SomeInternalClass {}
let someInternalConstant = 0

Her varlık aksi belirtilmediği sürece içinde bulunduğu kod bloğunun erişim denetimini alır. File-private bir Class içinde yer alan özelliklerde File-private erişim düzeyinde olacaktır.

fileprivate class SomeFilePrivateClass {
    func someFilePrivateMethod() {}         // Bu metod belirtilmesede içinde bulunduğu kod bloğu sebebiyle fileprivate erişim düzeyindedir.
    private func somePrivateMethod() {}
}
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