I am trying to create a simple SKShapeNode
subclass which contains a label inside it. I've tried a couple of ways to do this but I get errors for both of them.
Attempt 1
class MyNode: SKShapeNode {
private var label: SKLabelNode
init(_ frame: CGRect) {
super.init()
self.path = CGPath.init(rect: frame, transform: nil)
self.label = SKLabelNode(text: "Some text")
self.addChild(self.label)
}
}
Error: Property 'self.label' not initialized at super.init call
Attempt 2
class MyNode: SKShapeNode {
private var label: SKLabelNode
init(_ frame: CGRect) {
self.label = SKLabelNode(text: "Some text")
self.addChild(self.label)
super.init()
self.path = CGPath.init(rect: frame, transform: nil)
}
}
Error: 'self' used in method call 'addChild' before 'super.init' call
How can I go about creating this subclass without using optional properties and force unwrapping them every time I use them?