我有一个协议(protocol),它有一个结构作为属性:
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
在类中初始化结构体的正确方法是什么?
最佳答案
在调用 Shapes 类初始化器中的 super.init() 方法之前,您必须先初始化 self.dimensions
init(dimensions: Dimensions) {
self.dimensions = dimensions
super.init()
}
关于swift - 结构内部协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42570169/