2017-12-28 32 views
0

내 사용자 정의 클래스 세포 관리자에서 내 UISwipeGestureRecognizer에이 오류가 발생했습니다왜 UISwipeGestureRecognizer에서이 오류가 발생합니까?

enter image description here 그것은 내 주요있는 UITableViewController 클래스에서 일하고

... 난 내있는 viewDidLoad에서 새 인스턴스를 만들

:

let updateClass = updateCell() 
    updateClass.swiper() 

나는이게 thread에 대한 확신이 없지만 문제를 해결하기 위해 게으른 var를 사용해야 할 수도 있지만 아무 것도 변경하지 않습니다. 어떻게해야합니까? 왜 내가이 오류를 갖게 되었습니까?

도움 주셔서 감사합니다.

+0

당신의 rightView에 대한 좋은 튜토리얼이 전무되어있는 UITableViewDataSource 인터페이스

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // load and return your cell } 

를 구현해야합니다. IBOutlet 연결 확인 –

+0

실제로 그 이유는 무엇입니까? 그것은 내 메인 클래스에 nul 아니에요 ... – Danyl

+1

XIB/Storyboard와의 연결을 확인하십시오. –

답변

-2

오른쪽보기가 0 일 수 있습니다. 콘센트 연결을 확인하십시오

+0

모든 것이 내 콘센트 연결에 좋을 것 같습니다. 추가 할 내용이있을 수 있습니까? – Danyl

+0

추가 할 필요가 없습니다. 이 줄이 작동합니다. 깨끗하고 건조한 다음 실행하십시오 –

+0

변경 사항 없음 ... 내 말은, 스토리 보드에 무엇을 넣어야합니까? 마우스 오른쪽 버튼으로 아무런 오류도 발생하지 않습니다 ... 경고하지 않고 아무것도하지 마십시오. – Danyl

0

콘센트에 아무 것도 쓰지 않고 rightView을 덮어 쓰지 않는 경우 swiper()을 주 스레드에서 호출해야합니다.

DispatchQueue.main.async { 
    // your code here 
} 

이렇게 전화 해보세요. 스레드가 동기화되지 않으면 이러한 종류의 미친 동작이 발생합니다.

1

당신처럼 updateClass의 인스턴스를 생성하면 시스템이 스토리 보드 (또는 Xib)에서 뷰를로드하지 않습니다. 이것이 오류가없는 이유입니다.

당신은 또한 당신이있는 viewDidLoad에서이 코드를 호출 할 수 없습니다

let identifier = ... // the reusable identifier defined for this cell in storyboard 

let cell = tableView.dequeueReusableCell(withIdentifier: identifier, for: indexPath) as! updateClass 

를 사용할 수있는 스토리 보드에서 테이블 뷰 셀을로드합니다. 당신은 어쩌면 이것은 당신이 https://www.raywenderlich.com/77974/making-a-gesture-driven-to-do-list-app-like-clear-in-swift-part-1