2011-12-23 4 views
0

내보기 컨트롤러 (내비게이션 컨트롤러)에 테이블이 있습니다. 그것은 5 개의 행을 포함합니다. 하나의 세 번째 행을 클릭하면 새 뷰 컨트롤러가 스택에 푸시됩니다. 이 새로운 컨트롤러에는 테이블 뷰가 포함되어 있으며 해당 테이블 뷰의 셀에는 cell.contentView addSubView를 사용하여 추가 된 텍스트 필드가 포함되어 있습니다. 텍스트 필드 중 하나를 클릭하면 키보드 대신 선택 도구 (textField.inputView 사용)가 표시됩니다. 이제 선택 도구에서 항목을 선택하지 않고 뒤로 버튼을 클릭하면 내보기가 팝업됩니다. 하지만 (루트 뷰 컨트롤러에있을 때) 잠시 후에 앱이 추락합니다.탐색 컨트롤러에서 뒤로 버튼을 클릭하면 응용 프로그램이 충돌합니다.

하지만 키보드를 표시하는 텍스트 필드를 클릭 한 다음 뒤로 버튼을 누릅니다. 충돌이 발생하지 않습니다. 그러면 문제는 무엇일까요 ??

+1

코드를 보여줄 수 있습니까? – Sarah

+0

FirstViewController는 My Root Controller이며 세 번째 셀을 클릭하면 SecondViewController가 푸시됩니다. 내 SecondViewController (피커보기가 표시됨)에서 뒤로 버튼을 클릭하면 팝업이 표시되고 FirstViewController가 2 ~ 3 초 동안 표시된 다음 앱이 손상됩니다. 콘솔 로그 : (NSZombieEnabled가 YES 인 동안) *** - [SecondViewController respondsToSelector :] : 할당 취소 된 인스턴스로 메시지가 전송되었습니다. 0x599d280 – anshul

+1

코드를 보여줘야합니다. 그것은 콘솔로 아이디어를 줄 수는 없습니다. 또한 null 값이 일부 변수에 전달되므로 앱이 다운 될 수 있습니다. – Sarah

답변

0

로직에 버그가있는 것 같습니다. 빌드 및 디버그를 시도하고 호출 함수의 디버거 (실행 디버거) 스택에서보십시오.

0

포인터를 nil 또는 다른 객체로 초기화하지 않고 사용하면 적절하게 사용자가 아닌 메모리에 액세스하게됩니다. 이 유형의 코드는 또한 EXC_BAD_ACCESS 오류를 제공합니다. 즉, 사용자가 아닌 메모리를 사용하려고합니다. 먼저 줄 바꿈 점을 사용하여 코드를 추적하십시오.

관련 문제