Swift “open”类的初始值设定项也需要打开吗?

Swift “open”类的初始值设定项也需要打开吗?,swift,keyword,swift3,Swift,Keyword,Swift3,Swift 3引入了我在框架中使用的新关键字 此框架中的open类是否需要在所述框架之外使用open初始化器,或者init函数是否继承类上的open声明 例如: open class OpenClass { var A: String init() { // does this init() function need to be marked open? A = String() } } 附带问题:OpenClass中的变量是否继

Swift 3引入了我在框架中使用的新关键字

此框架中的
open
类是否需要在所述框架之外使用
open
初始化器,或者init函数是否继承类上的
open
声明

例如:

open class OpenClass {
    var A: String

    init() {           // does this init() function need to be marked open?
        A = String()
    }
}
附带问题:OpenClass中的变量是否继承了其类的开放性?

来自:

初始化者不参与公开检查;它们不能被声明为打开的,并且对提供与超类中的初始值设定项具有相同签名的初始值设定项没有任何限制

您不需要也不能将init方法声明为open:

open class OpenClass {

    open init() { // error: only classes and overridable class members can be declared 'open'; use 'public'

    }
}
类(属性)的所有成员的默认访问级别 和方法)是内部的,这也适用于开放类