我有有一個結構作爲一個屬性的協議:結構內部協議
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
什麼是inisialzie類內結構的正確方法?
在代碼中這麼多的問題來初始化self.dimensions。協議s/b協議。 init之後需要parens。你真的有代碼可以得到你引用的錯誤信息嗎?嘗試張貼。 –
在出現錯誤的代碼中有註釋。你能否澄清我在代碼中遇到的問題? – Abdou023
@ Abdou023他很清楚。 'Protocol'不正確,因爲它與'protocol'不同。在'Shapes'中,'override'後缺少'()'。您還需要以不完整的方式繼承「SKShapeNode」,因爲您必須實現其'必需的init(coder:)'。請發佈實際構建的代碼,或者學習如何解決代碼中的其他問題(如果您不知道爲什麼它們是錯誤的),因爲就其本身而言,我們需要解決代碼中存在的幾個問題與您的原始問題有關。 –