如何解决无法识别的选择器已发送到实例Sprite Kit
我被著名的“无法识别的选择器发送给实例”震惊。完整的错误是
-[MyGame.GameScene handlePanFrom:]:无法识别的选择器已发送到实例0x103c05fe0
所指功能是她在游戏场景中的作用:
func handlePanFrom(recognizer: UIPanGestureRecognizer) {
if recognizer.state == .began {
var touchLocation = recognizer.location(in: recognizer.view)
touchLocation = self.convertPoint(fromView: touchLocation)
self.selectNodeForTouch(touchLocation: touchLocation)
} else if recognizer.state == .changed {
var translation = recognizer.translation(in: recognizer.view!)
translation = CGPoint(x: translation.x,y: -translation.y)
self.panForTranslation(translation: translation)
recognizer.setTranslation(CGPoint.zero,in: recognizer.view)
} else if recognizer.state == .ended {
if selectedplayer.name != kAnimalNodeName {
let scrollDuration = 0.2
let veLocity = recognizer.veLocity(in: recognizer.view)
let pos = selectedplayer.position
// This just multiplies your veLocity with the scroll duration.
let p = CGPoint(x: veLocity.x * CGFloat(scrollDuration),y: veLocity.y * CGFloat(scrollDuration))
var newPos = CGPoint(x: pos.x + p.x,y: pos.y + p.y)
newPos = self.boundLayerPos(aNewPosition: newPos)
selectedplayer.removeAllActions()
let moveto = SKAction.move(to: newPos,duration: scrollDuration)
moveto.timingMode = .eaSEOut
selectedplayer.run(moveto)
}
}
}
let gestureRecognizer = UIPanGestureRecognizer(target: self,action: Selector(("handlePanFrom:")))
self.view!.addGestureRecognizer(gestureRecognizer)
如果您需要查看我将提供的其他任何代码。
还应注意,我在GameViewController中更改了一些代码,但我不知道这是否与它有关。
解决方法
尝试使用#selector语法,如下所示:
let gestureRecognizer = UIPanGestureRecognizer( target: self,action: #selector(handlePanFrom(recognizer:)) )
并将方法标记为@objc
@objc func handlePanFrom(recognizer: UIPanGestureRecognizer) {
print("Pan !")
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。