2016-09-30 4 views
1

Я пытаюсь добавить салфетки жест в узел так, что когда пользователь пойло, он выходит за пределы экрана, но я продолжаю получать SIGABRT ошибку:Как добавить салфетки жест к узлу в spritekit

`Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[fidget2.PlankScene swipedRight:]: unrecognized selector sent to instance 0x7ff4c3603e00'` 

Я не уверен, почему эта ошибка появляется. Я убедился, что узел правильно помечен в файле .sks. Вот мой код:

import SpriteKit 


let plankName = "woodPlank" 

class PlankScene: SKScene { 

    var plankWood : SKSpriteNode? 


    override func didMove(to view: SKView) { 

    plankWood = childNode(withName: "woodPlank") as? SKSpriteNode 


    let swipeRight : UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedRight:")) 

    swipeRight.direction = .right 

    view.addGestureRecognizer(swipeRight) 

    } 


    func swipedRight(sender: UISwipeGestureRecognizer) { 

    print("Object has been swiped") 

    } 


func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) 
    { 
    let touch = touches.first as! UITouch 
    let location = touch.location(in: self) 

    if (plankWood?.frame.contains(location))! 
    { 
    print("Swipe has started") 
    } 
    } 
} 
+1

Заменить 'Selector ("swipedRight:")' с '#selector (PlankScene.swipedRight)' – 0x141E

+0

проверить didMove только вызывается один раз, и удалить этот жест в вашем Deinit. – Knight0fDragon

+0

Идентификаторы жестов не добавляются к узлам, а скорее к представлениям ... – Whirlwind

ответ

3

была такая же проблема, только поэтому мы имеем принят ответ на это я хотел бы отметить, что комментарий, оставленный 0x141E является правильным решением этой проблемы:

Заменить Selector("swipedRight:") с #selector(PlankScene.swipedRight)

Смежные вопросы