【发布时间】:2015-11-22 09:00:23
【问题描述】:
必需初始化程序的访问控制规则似乎与未指定必需初始化程序的规则不同。为什么?
public class A {
// required init() must be public, why?
public required init() { }
}
public class B {
// init() does not need to be public, why?
init() { }
}
【问题讨论】:
-
这里需要注意的是,这只是这种情况,因为类本身被标记为
public。如果类本身没有访问修饰符并假定默认为internal,那么您的required初始化程序也不需要访问修饰符。 -
@nhgrif 看看我回答中的粗体字。所需的 init 仍然需要一个至少为
internal的访问修饰符,这是默认值,因此我们可以省略它。 -
我不认为我的评论和你的回答存在分歧,@RMenke
-
@nhgrif 只是想澄清一下,不正确;)
标签: swift access-control initializer