So gibt es diese Klasse in SpriteKit:Swift 3: Beobachten einer schreibgeschützten Eigenschaft
open class SKNode : UIResponder, NSCopying, NSCoding, UIFocusItem {
...
open var scene: SKScene? { get }
...
Ich mag würde eine gewisse Logik auszulösen, wenn die scene
Eigenschaft nicht null wird.
Dies ist, was ich versuchte:
class MyNode : SKNode {
override var scene: SKScene? {
didSet {
if scene != nil {
// my custom logic
}
}
}
}
aber ich erhalte eine Fehlermeldung: Cannot observe read-only property 'scene'; it can't change
den Sinn in der Theorie macht.
In der Praxis ist der Wert der Eigenschaft tut Änderung:
let node = SKNode()
print(node.scene?) // nil
scene.addChild(node)
print(node.scene?) // SKScene
Gibt es einige schwarze Magie, die ich stattdessen verwenden könnte?
Diese Frage zur Verwendung von KVO für berechnete Eigenschaften gefunden: http://stackoverflow.com/questions/36555492/kvo-on-swifts-computed-properties – scribu