2017-03-28 23 views
0

C++では、クラス定義内に "public:/ private:"セクションを指定できます。 Swift 3でこれを行う方法はありますか、プライベートにしたいすべてのオブジェクトの前にキーワード「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

プライベートエクステンションには、エクステンションの本体で使用できる静的プライベートプロパティを含めることができます。 – JAL

+0

この 'fileprivate'キーワードはswift 2.3で利用できますか?または、スイフト3.0から始まります。 – Exploring

+0

Swift 3.0以降、 'fileprivate'が利用可能です –

関連する問題