创建一个没有初始值的 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] 时阻止代码编译=] 无法为您的非可选 属性 提供非零值。
我正在尝试创建一个 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] 时阻止代码编译=] 无法为您的非可选 属性 提供非零值。