İtibariyle Swift 3.0.1 vardır 4 erişim seviyelerinin en düşük (en kısıtlayıcı) en yüksek (en az kısıtlayıcı) aşağıda tarif edilen,.
1. openvepublic
Varlığın, tanımlayıcı modülün (hedef) dışında kullanılmasını sağlayın. Bir çerçeveye genel arabirimi belirtirken genellikle kullanır openveya publicerişirsiniz.
Ancak, openerişim yalnızca sınıflar ve sınıf üyeleri için geçerlidir ve publicerişimden şu şekilde farklıdır :
public sınıflar ve sınıf üyeleri yalnızca tanımlayıcı modül (hedef) içinde alt sınıflara ayrılabilir ve geçersiz kılınabilir.
open sınıflar ve sınıf üyeleri tanımlayıcı modülün (hedef) içinde ve dışında alt sınıflara ayrılabilir ve geçersiz kılınabilir.
// First.framework – A.swift
open class A {}
// First.framework – B.swift
public class B: A {} // ok
// Second.framework – C.swift
import First
internal class C: A {} // ok
// Second.framework – D.swift
import First
internal class D: B {} // error: B cannot be subclassed
2. internal
Bir varlığın tanımlayıcı modül (hedef) içinde kullanılmasını sağlar. internalErişimi genellikle bir uygulamanın veya çerçevenin dahili yapısını tanımlarken kullanırsınız .
// First.framework – A.swift
internal struct A {}
// First.framework – B.swift
A() // ok
// Second.framework – C.swift
import First
A() // error: A is unavailable
3. fileprivate
Bir varlığın kullanımını tanımlayıcı kaynak dosyasıyla kısıtlar. Bu fileprivateayrıntılar bir dosya içinde kullanıldığında, genellikle belirli bir işlev parçasının uygulama ayrıntılarını gizlemek için erişim kullanırsınız .
// First.framework – A.swift
internal struct A {
fileprivate static let x: Int
}
A.x // ok
// First.framework – B.swift
A.x // error: x is not available
4. private
Bir varlığın kullanımını ek beyanıyla sınırlar. Bu privateayrıntıları yalnızca tek bir bildirimde kullanıldığında, belirli bir işlev parçasının uygulama ayrıntılarını gizlemek için genellikle erişimi kullanırsınız .
// First.framework – A.swift
internal struct A {
private static let x: Int
internal static func doSomethingWithX() {
x // ok
}
}
A.x // error: x is unavailable