1

내 앱에 문제가있어 솔루션을 찾을 수 없습니다.EXC_BAD_ACCESS 내부에 텍스트 필드가있는 셀을 다시로드 중

나는 사용자 정의 셀을 가지고 UICollectionView을 가지고 있습니다. 내 셀에는 UITextField가 있습니다.

텍스트 필드가 editMode (키보드가 활성화 된 상태) 일 때 collectionView를 다시로드하면 EXC_BAD_ACCESS 오류가 발생합니다. 이 오류는 메서드 호출 resignFirstResponderUITextField이기 때문에 발생합니다. 문제는 셀이 아마도 dealloced 되었기 때문에 collectionView 안에 더 이상 존재하지 않는다는 것입니다.

enter image description here

이 문제를 방지하는 방법을 어떤 생각 :

이 오류에 내 스택은 무엇입니까? 사전

+0

사용자 정의 셀 deconstructor이 제대로 모든 관찰자 폐기되어 있습니까? – cdstamper

+0

당신은 당신의 질문을 더 잘 설명 할 수 있습니까 @cdstamper, "textFieldShouldReturn"에 resignFirstResponder 만 추가하십시오 – DaSilva

+0

저에게 추적을 보여줄 수 있습니까? dealloc이해야하는 일을하지 않는 것 같습니다. 어쩌면 당신의 UITextField 델리게이트는 어떤 시점에서 존재하지 않게 될 것입니다.이 경우 당신은 당신의 객체가 사라지면 그것을 0으로 설정해야합니다. – cdstamper

답변

0

에서

덕분에, 텍스트 필드, 약한 참조에 모델에 대한 참조를 추가합니다.

모델이 dealloc 일 때 텍스트 필드의 응답자를 사임하십시오.

코드 :

-(void)dealloc{ 
    if (self.refrenceTextField) { 
     [self.refrenceTextField resignFirstResponder]; 
     self.refrenceTextField = nil; 
    } 
} 
+0

@SamuelRodrigues 감사합니다! – DaSilva