创建一个没有初始值的 NSTimeInterval 变量给我一个错误

Create a var of NSTimeInterval without an inital value gives me an error

我正在尝试创建一个 NSTimeInterval 的变量,但没有在初始化时赋值。

var elapsedTime : NSTimeInterval

即使根本没有在代码中使用它,我也会在 class:

处收到错误

Class 'myClassName' has no initializers

它建议我将 0.0 的值添加到 elapsedTime。一开始我不想给它增加任何价值。我做错了什么,我该如何解决?

非可选 class 属性必须具有默认值或在您的 init 方法中初始化。

使用默认值:

class Foo {
    var bar: NSTimeInterval = 3.14
}

正在 init 初始化:

class Foo {
    var bar: NSTimeInterval
    init(timeInterval: NSTimeInterval) {
        self.bar = timeInterval
    }
}

可选:

class Foo {
    var bar: NSTimeInterval?
}

如果 属性 是可选的,它可以是 nil,因此在初始化完成之前不需要赋值。

如果 属性 是非可选的,则在初始化的第一阶段必须有一些获取值的方法,否则,您的 class 的实例将被初始化为无效的声明 Swift 无法协调(非可选 属性 没有指定值)。

在某种程度上,它与整个 "unexpectedly found nil when unwrapping an optional" 有点相同的错误,只是这个错误可以在编译时被捕获,并且 Xcode 将在您的 [=33] 时阻止代码编译=] 无法为您的非可选 属性 提供非零值。