我输入了一个障碍代码,并且使用了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()
}
}
}
答案 0 :(得分:0)
在generateFruit
中,您创建了一个名为fruits
的本地变量,该变量隐藏了您的类属性fruits
:
let fruits = MCTFruit()
然后在这一行中,你指的是fruits
,希望一个是局部变量,一个是类属性:
fruits.append(fruits)
编译器将使用局部变量,这就是您收到错误的原因,因为fruits
(MCTFruit
的实例)没有附加方法。
你可以通过说:
来解决这个问题self.fruits.append(fruits)
但我建议您为本地变量选择另一个名称:
let fruit = MCTFruit()
fruits.append(fruit)