1

这是一个错字吗?

@available(watchOS 2.0, *)
open class WKInterfaceController : NSObject {

public init()

open func awake(withContext context: Any?) // context from controller that did push or modal presentation. default does nothing

“开放”不应该是“可选的”吗?

如果它应该打开,有人可以发布如何使用这个新的 swift 术语吗?

谢谢

格雷格

4

1 回答 1

1

实际上它是一个新的访问修饰符

https://github.com/apple/swift-evolution/blob/master/proposals/0117-non-public-subclassable-by-default.md

提议的设计

引入一个新的访问修饰符,打开。像往常一样,这个访问修饰符与其他访问修饰符是互斥的;不允许写 public open 之类的东西。

open 是一个上下文相关的关键字;使用或创建名称为 open 的声明没有任何限制。

任意声明都不允许打开。只有这里提到的特定声明可能是开放的。

出于解释现有语言规则的目的,open 是高于 public 的更高(更宽松)的访问级别。

例如,类型成员的真实访问级别被计算为类型的真实访问级别和成员声明的访问级别的最小值。如果类是公共的,但成员是开放的,那么真正的访问级别是公共的。作为该规则的一个例外,作为公共类型成员的开放类的真正访问级别是开放的。

同样,授予对公共声明访问权限的规则通常应解释为授予对公共声明和开放声明的访问权限。

于 2016-08-15T19:21:41.043 回答