Ios Swift扩展与其他类

Ios Swift扩展与其他类,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我在做一个游戏,有一堆向量,每个向量对应于另一个向量中的一个SKSpriteNode。您能否扩展SKSpriteNode类以将我存储在其他向量中的属性包含在相应索引中,然后在SKScene的类声明/实现中创建ExtendedSKSpriteNode类型的对象?我试过了,但收效甚微 //Current Implementation class OldScene: SKScene { var node1 = SKSpriteNode(imageNamed: "who cares")

我在做一个游戏,有一堆向量,每个向量对应于另一个向量中的一个SKSpriteNode。您能否扩展SKSpriteNode类以将我存储在其他向量中的属性包含在相应索引中,然后在SKScene的类声明/实现中创建ExtendedSKSpriteNode类型的对象?我试过了,但收效甚微

//Current Implementation
class OldScene: SKScene {
    var node1 = SKSpriteNode(imageNamed: "who cares")
    var node2 = SKSpriteNode(imageNamed: "doesn't matter")
    var node3 = SKSpriteNode(imageNamed: "this is instantiated")
    var nodeVector: [SKSpriteNode] = [node1, node2, node3]
    var timesWhenSomethingHappensToEachNode: [CGFloat] = [CGFloat(1.2), CGFloat(1.7), CGFloat(3.1)]
    var framesUntilThisOccurs: [Int] = [2, 30, 15]
}

//Desired implementation
extension SKSpriteNode {
    //timesWhenSomethingHappensToEachNode and framesUntilThisOccurs are made properties
    //of SKSpriteNode
    //probably happens in here
}

class NewScene: SKScene {
    //Can we instantiate those extended types here?
    var newNode1 = SKSpriteNode(imageNamed: "who cares")
    var newNode3 = SKSpriteNode(imageNamed: "this is instantiated")

    var nodeOneTime = newNode1.timesWhenSomethingHappensToEachNode
    var framesUntilThreeHappens = newNode3.framesUntilThisOccurs
}

既然可以创建一个SKSpriteNode子类,为什么还要扩展SKSpriteNode?一个扩展不能有存储的属性,但这里有一个很好的观点,paul。多态性和条件向下转换应该使这变得非常简单。谢谢