2017-03-28 2 views
0

C++에서는 클래스 정의 내에 "public :/private :"섹션을 지정할 수 있습니다. 스위프트 3에서이 작업을 수행 할 수있는 방법이 있습니까? 아니면 비공개가되기를 바라는 모든 객체 앞에 "private"키워드를 사용해야합니까?Struct/Class 정의의 private 섹션 swift 3

+0

모든 개체에서이 작업을 수행해야합니다. 나는 다른 방법이 있다고 생각하지 않는다. – gasho

답변

2

당신은

class MyClass { 

} 

당신은 예를 들어, 범위의 확장을 선언 할 수있는 경우

fileprivate extension MyClass { 
    var someThing: String { // This computed property is fileprivate 
     return "ABC" 
    } 

    func doSomething() { // This func is fileprivate 
    } 
} 

public extension MyClass { 
    var someOtherThing: String { // This computed property is public 
     return "123" 
    } 

    func doSomethingElse() {  // This func is public 
    } 
} 

그러나, 당신은 단지 클래스 정의에 저장된 속성을 선언 할 수 있습니다, 그래서이 당신은 재산 자체에 범위 키워드를 적용하려면이 경우하지 작업 ...

private extension MyClass { 
    let myName = "Fred"  
} 

가 필요합니다 ...

class MyClass { 
    private let myName = "Fred" 
} 
+0

비공개 Extension에는 확장 본문에서 사용할 수있는 정적 개인 속성이 포함될 수 있습니다. – JAL

+0

이'fileprivate' 키워드는 swift 2.3에서 사용할 수 있습니까? 또는 신속한 3.0부터 시작합니다. – Exploring

+0

Swift 3.0 이후'fileprivate'를 사용할 수 있습니다. –