扩展中的Swift静态成员和声明不能同时是“最终”和“动态”

时间:2016-09-09 21:58:06

标签: objective-c swift compiler-errors

我遇到了一个奇怪的错误,即使有回答的问题,也没有人真正解释发生了什么。

如果我在Swift 3.0中定义以下类,编译器会为Objective-C为pi创建一个动态getter:

@objc class Thing : NSObject {

    public static let pi = NSNumber(value:3.1415926)
}

但是,如果我将声明移到一个扩展名中,那么一切都会破裂:

@objc class Thing : NSObject {


}

extension Thing{
    public static let pi = NSNumber(value:3.1415926)

}

我收到以下错误:

error: a declaration cannot be both 'final' and 'dynamic'

为什么在课程的扩展名或正文中声明它有什么不同?

谁是最终的?

0 个答案:

没有答案