[swift] 20. 접근제어

접근 레벨

레벨 지정

튜플 타입

함수 타입

인자와 반환 값보다 넓은 접근 제한자를 가질 수 없다. 

func someFunction() -> (SomeInternalClass, SomePrivateClass) {
    // function implementation goes here
}
// 에러. Private class 가 있으므로 함수는 private으로 선언되어야 함.


private func someFunction() -> (SomeInternalClass, SomePrivateClass) {
    // function implementation goes here
}

열거형 타입(Enum)

서브클래싱

public class A {
    fileprivate func someMethod() {}
}

internal class B: A {
    override internal func someMethod() {}
}

Getter & Setter

struct TrackedString { private(set) var numberOfEdits = 0 var value: String = “” { didSet { numberOfEdits += 1 } } }

Extension

protocol SomeProtocol {
  func doSomething()
}


struct SomeStruct {
    private var privateVariable = 12
}

extension SomeStruct: SomeProtocol {
    func doSomething() {
        print(privateVariable)
    }
}