2015-01-29 7 views
0

응답하기 전에 신속하게 (2 년 전에 코딩 한 OBJC였던 마지막 시간에) 매우 새로운 점을 염두에 두십시오. 오류가있는 것 같습니다. 다음은 내 코드 샘플입니다.제스처 인식기 사용

init(sourceView:UIView, menuItems:Array<String>) { 
    originView = sourceView 
    sideBarTableViewController.tableData = menuItems 

    animator = UIDynamicAnimator(referenceView: originView) 
    let showGestureRecognizer:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "handleSwipe:") 
    showGestureRecognizer.direction = UISwipeGestureRecognizerDirection.Right 
    originView.addGestureRecognizer(showGestureRecognizer) 
    let hideGestureRecognizer:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "handleSwipe:") 
} 

UISwipeGestureRecognizer 대상에 오류가있는 것 같습니다. super.init 호출 전에 'self'가 사용되면서 오류가 발생하기 때문에 스스로 설정할 수 없습니다.

모든 도움을 주시면 대단히 감사하겠습니다.

+0

새로운 Swift 튜토리얼을 읽으면 도움이 될 것입니다. http://www.apeth.com/swiftBook/ch04.html#_class_initializers 'init'에서해야 할 일에 대한 규칙을 설명합니다. – matt

답변

1

제스처 인식기에 연결되어 있다고 생각하지 않습니다. (내부) 시작 부분에 추가하여, 사용자의 초기화() 메소드를 수정하려고 :

super.init() 

이것은 당신이 무시되는 클래스의 매개 변수를 사용하여 객체를 초기화합니다. 또한 init 메소드 전에 override을 추가 할 것을 요청할 것입니다.

+0

고마워, 그냥 내 코드 상단에 추가하고, 이제 완벽하게 작동합니다. 빠른 답변 감사합니다! –