Inheritance 设置基类';让';使用swift的子类中的变量
我有一个继承SKScene的基类:Inheritance 设置基类';让';使用swift的子类中的变量,inheritance,swift,sprite-kit,Inheritance,Swift,Sprite Kit,我有一个继承SKScene的基类: class BaseClass: SKScene { let round: Int! } 以及继承基类的类: class ChildClass: BaseClass { override init(size: CGSize) { super.init(size) self.round = 1 } } 不知何故,我无法修改self.round。它说,不能分配给“self”中的“round” 我以为感叹号
class BaseClass: SKScene {
let round: Int!
}
以及继承基类的类:
class ChildClass: BaseClass {
override init(size: CGSize) {
super.init(size)
self.round = 1
}
}
不知何故,我无法修改self.round。它说,不能分配给“self”中的“round”
我以为感叹号可以让我稍后设置值。使用
let
声明的属性只能在它们所属的类的初始值设定项中可变。如果您需要一个子类来更改值,您可以选择(1)将round
更改为var
声明,或(2)在BaseClass
中创建一个初始值设定项,该初始值设定项接受round
的值
第一个是琐碎的;下面是第二个例子:
class BaseClass: SKScene {
let round: Int!
init(size: CGSize, round: Int) {
self.round = round
super.init(size: size)
}
}
class ChildClass: BaseClass {
init(size: CGSize) {
super.init(size: size, round: 1)
}
}
(省略
init(coder:)
实现…让绑定暗示不变性<代码>代码>不是用于可变性,而是用于隐式展开的选项。太糟糕了,没有涓涓细流的方式来使用let:/谢谢你Nate Cook!