class GameScene: SKScene {
override func didMoveToView(view: SKView) {
/ Setup your scene here */
let pinch = UIPinchGestureRecognizer(target: self, action: "handleGesture:")
let rotate = UIRotationGestureRecognizer(target: self, action: "handleGesture:")
let pan = UIPanGestureRecognizer(target: self, action: "handleGesture:")
let tap = UITapGestureRecognizer(target: self, action: "handleTap:")
let doubleTap = UITapGestureRecognizer(target: self, action: "handleTap:")
pan.maximumNumberOfTouches = 1
doubleTap.numberOfTapsRequired = 2
pinch.delegate = self
rotate.delegate = self
pan.delegate = self
tap.delegate = self
doubleTap.delegate = self
view.addGestureRecognizer(pinch)
view.addGestureRecognizer(rotate)
view.addGestureRecognizer(pan)
view.addGestureRecognizer(tap)
view.addGestureRecognizer(doubleTap)
view.scene?.backgroundColor = UIColor.whiteColor()
}
override func update(currentTime: CFTimeInterval) {
/ Called before each frame is rendered */
}
}
extension GameScene: UIGestureRecognizerDelegate {
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
return true
}
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
if let first = gestureRecognizer as? UITapGestureRecognizer, second = otherGestureRecognizer as? UITapGestureRecognizer {
return false
}
if otherGestureRecognizer.view !== self.view {
return false
}
return true
}
func handleTap(sender: UITapGestureRecognizer) {
}
func handleGesture(sender: UIGestureRecognizer) {
}
}
this simple code is always get crash with UITapGestureRecognizer in release mode when handle the tap event.
i don't know what the problem
and i get this error with NSZombieEnabled
2015-06-17 09:37:51.859 test[46219:13224547] *** -[UITapGestureRecognizer release]: message sent to deallocated instance 0x174137fc0