2011-01-18 1 views

답변

7

EXC_BAD_ACCESS는 I은 설명 될 목표 -C 예외 및 에러 메시지를 찾는. 객관적인 예외에 대한 중단 점이있는 디버거를 사용하여 일반적인 오류를 해결하기위한 레시피 목록을 컴파일하는 것보다 충돌을 일으키는 특정 행을 찾는 방법을 배우는 것이 더 나을 것이라고 생각합니다.

내가 자주 혼란스러운 점으로 보았던 한 가지 명백하지 않은 오류는 "인식 할 수없는 선택기 foo : BarClass로 전송되었습니다"입니다. 그 오류가 어렵게 될 수 있었 나는 두 가지 일반적인 원인을 참조하는 방법 응답 명확해야하는 이유 동안 :

앱 슈퍼 클래스의 인스턴스에 서브 클래스 '메소드를 호출하려고
  1. . 종종 개발자가 IB의 객체 클래스를 변경하지 못한 결과입니다.
  2. 개체가 할당 해제 된 후 과도하게 릴리스되거나 참조됩니다. 다른 클래스의 새 인스턴스가 이제 해당 메모리 주소를 차지하면 "BAD_ACCESS"대신 "인식 할 수없는 선택기"예외가 발생합니다.
+1

소원 나는 이것을 +5 수 있습니다. 유효한 포인터가 아니기 때문에, 객체가 예상 될 때 원시 타입을 전달하면 종종 그것을 얻을 것이다. – ughoavgfhw

1

에드 않은 객체를 가리키는 포인터를 참조 할 때

관련 문제