我有一个具有结构作为属性的协议:
struct Dimensions {
var width: CGFloat
var height: CGFloat
}
Protocol ShapeType {
var dimensions: Dimensions {get set}
}
现在我有一个类,它是SKShapeNode
的一个子类:
class Shapes: SKShapeNode, ShapeType {
var dimensions: Dimensions
override init { // Error
super.init()
dimensions = Dimensions(width: 40, height: 40)
}
}
我收到此错误:
Property 'self.dimensions' not initialized at super.init call
在课堂内使用结构的正确方法是什么?
答案 0 :(得分:2)
在Shapes类初始值设定项中调用super.init()方法之前,必须初始化self.dimensions
init(dimensions: Dimensions) {
self.dimensions = dimensions
super.init()
}