2014-11-23 3 views
0

내가 실행되면, 그러나 다음UIGesture 인식기 충돌은 응용 프로그램

let recognizer = UISwipeGestureRecognizer(target: self, action: "handleSwipe:") 
     recognizer.direction = UISwipeGestureRecognizerDirection.Right 
     self.view?.addGestureRecognizer(recognizer) 

     func handleSwipe() { 
      println("Swiped Right") 

를 사용하여 스위프트 내 SKScene에 UI 제스처 인식기를 추가하고 슬쩍을 수행하려고했다가, 응용 프로그램은 다음 로그로 추락 :

21 :

2014년 11월 22일 23 35.251 혁명 [83,866 : 460,316은] - [Revolution.levelSelect handleSwipe는 :] : 21 : 미정 선택기 2014년 11월 22일 23 인스턴스 0x7feec842b920 전송 35.255 혁명을 [83,866 : 460,316을 ] *** 캐치되지 않은 예외 'NSInvalidArgumentException'으로 인해 앱 종료 중, 이유 : '- [Revolution.levelSelect handleSwipe :] : 인식 할 수없는 선택 또는 인스턴스 0x7feec842b920 '로 전송

의 libC++ abi.dylib : 유형 NSException

의 캐치되지 않는 예외로 종료 나는 선택에 대한 GameViewController 또는 무엇에 추가 할 필요가 무엇이든 그것은 충돌의 원인이 있습니까?

답변

1

"handleSwipe :"의 ":"는 handleSwipe 메서드가 인수를 취하는 것을 나타냅니다. 이 경우 제스처 객체가 제스처 핸들러로 전달됩니다. 따라서 함수가 있어야합니다.

func handleSwipe(gesture:UISwipeGestureRecognizer) { 
    println("Swiped Right") 
} 
+0

그래도 실행되지 않습니다. GameViewController와 관련이 있다는 느낌이 들었습니다. UIGesturerecognizer를 초기화해야합니까? –

+0

아니요, GameScene.m의'didMoveToView'에서 초기화해야합니다. 'didMoveToView'에서도'handleSwipe()'가 선언 되었습니까? 나는 네 소식에서 알 수 없다. – 0x141E

+0

입니다. (: 자기 행동 : 대상 "handleSwipe :") '인식기 = UISwipeGestureRecognizer을하자 = UISwipeGestureRecognizerDirection.Right self.view .addGestureRecognizer (인식) FUNC의 handleSwipe (제스처 : UISwipeGestureRecognizer) recognizer.direction? { 에 println을 ("Swiped Right") }' –