我正在尝试创建一个新的NSTimer对象,只需将计数器增加1秒(计算我的游戏的生命周期),现在我已经看到了有关如何解决这个问题的演示和示例,并且已经完成了相同的操作事情,但项目继续失败。有什么建议吗?
这是错误消息:
无法识别的选择器发送到实例0x7a83c7d0
import SpriteKit
var timerObject = NSTimer()
var count = 0
let timer = SKLabelNode(text: "0")
class GameScene: SKScene , SKPhysicsContactDelegate {
override func didMoveToView(view: SKView) {
timerObject = NSTimer.scheduledTimerWithTimeInterval( 1 , target: self , selector: Selector("result"), userInfo: nil, repeats: true)
func result(){
count++
timer.text = String(count)
}
我还写了函数"结果"因此仍然崩溃
func result() {
count+= 0
timer.text = "\(count)"
}
答案 0 :(得分:0)
您的NSTimer
回调标记错误。试试这个:
func result(aTimer: NSTimer!) {
count+= 0
timer.text = "\(count)"
}
我相信你还需要将选择器作为“result:”传递:
timerObject = NSTimer.scheduledTimerWithTimeInterval( 1 , target: self , selector: "result:", userInfo: nil, repeats: true)
答案 1 :(得分:0)
我想出了所有遇到同样问题的人的答案,就是我遇到了错误信息:无法识别的选择器发送到实例0x7a83c7d0实际上解决方案很简单,我已经在viewDidLoad中初始化了我的timerObject对象错误表明方法结果不是gameScene的一部分 只需在viewDidLoad下移动您选择的选择器功能,它就可以正常工作
class GameScene: SKScene , SKPhysicsContactDelegate {
var timer = NSTimer()
var count = 0
let lableTimer = SKLabelNode(text: "0")
override func didMoveToView(view: SKView) {
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "result", userInfo: nil, repeats: true)
lableTimer.position = timerPosition
lableTimer.fontSize = 40
self.addChild(lableTimer)
}
func result(){
count++
lableTimer.text = String(count)
}
此外,我已将所有初始变量移到GameScene类中,而不是最重要的。