Swift SpriteKit:" MCTFruit没有名为append的成员?

时间:2015-09-05 14:36:43

标签: swift sprite-kit append

我输入了一个障碍代码,并且使用了fruit.append(fruits)行我得到了(见上文)错误,但是直接在它下面的行,fruitTracker.append(fruits),一切都很完美。 救命?提前致谢(:

这是我的课程代码:

class MCTFruitGen: SKSpriteNode {
var generationTimer: NSTimer!

var fruits = [MCTFruit]()
var fruitTracker = [MCTFruit]()

func startGeneratingFruitEvery(seconds: NSTimeInterval) {


    generationTimer = NSTimer.scheduledTimerWithTimeInterval(seconds, target: self, selector: "generateFruit", userInfo: nil, repeats: true)

}

func stopGenerating() {
    generationTimer?.invalidate()
}
func generateFruit() {

    var scale: CGFloat
    let rand = arc4random_uniform(2)
    if rand == 0 {
        scale = -1.0
    } else {
        scale = 1.0
    }

    let fruits = MCTFruit()


    fruits.position.x = size.width/2 + fruits.size.width/2

    fruits.position.y = scale * (NMCGroundHeight/160 + fruits.size.height)

    fruits.append(fruits)

    fruitTracker.append(fruits)
    addChild(fruits)
}

func stopFruit() {
    stopGenerating()
    for fruit in fruits {
        fruit.stopFruitMoving()


    }
}
}

1 个答案:

答案 0 :(得分:0)

generateFruit中,您创建了一个名为fruits的本地变量,该变量隐藏了您的类属性fruits

let fruits = MCTFruit()

然后在这一行中,你指的是fruits,希望一个是局部变量,一个是类属性:

fruits.append(fruits)

编译器将使用局部变量,这就是您收到错误的原因,因为fruitsMCTFruit的实例)没有附加方法。

你可以通过说:

来解决这个问题
self.fruits.append(fruits)

但我建议您为本地变量选择另一个名称:

let fruit = MCTFruit()
fruits.append(fruit)