结构/类定义中的私有部分swift 3

时间:2017-03-28 16:04:39

标签: swift swift3 access-specifier

在C ++中,您可以指定" public:/ private:"类定义中的部分。有没有办法在Swift 3中执行此操作,或者我必须使用关键字" private"在我希望私密的每个物体前面?

1 个答案:

答案 0 :(得分: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"    
}

在这种情况下,您需要将scope关键字应用于属性本身...

class MyClass {
    private let myName = "Fred"
}