iPhone 앱이 다운 된 후 콘솔을 불러 오면 "인식기가없는 선택기가 인스턴스 0x로 전송되었습니다."라고 표시됩니다. 이것이 어떤 변수인지 어떻게 알 수 있습니까? 디버거에 방법이 있습니까? 심지어 가능할까요? 감사.XCode 콘솔에서 16 진수로 인스턴스를 찾는 방법은 무엇입니까?
14
A
답변
19
GDB에서는
po 0x12345678
해당 주소에있는 개체의 -description
를 인쇄하려면 입력 할 수 있습니다. 그러나이 정보는 거의 유용하지 않습니다. 대신 문제의 원인이되는 코드 줄을 찾을 수있는 예외의 백 트레이스를 먼저 확인해야합니다.
10
예외 브레이크 포인트를 만드는 것이 매우 유용하며, Xcode 7.3을 사용하면 결코 쉬운 일이 아닙니다. 이렇게하면 예외가 발생하는 코드 줄을 찾는 데 도움이됩니다. 앱에서
- 라인에 중단 점을 추가 그것을
- 클릭 "+ "하단 왼쪽에
- "예외 예외 추가 "선택
코드를 실행하십시오. "인식 할 수없는 선택기가 인스턴스 0x blah blah blah로 전송 될 때마다"디버거가 문제를 일으키는 줄에서 멈 춥니 다.
+0
화려한 솔루션 – GenRiH
그래, 나도 그걸 알아낼 수 없다. 예외를 일으킨 코드의 줄 번호가 호출 스택의 + 뒤에 오는 번호입니까? – marty
@marty : 디버깅을 위해 컴파일 중입니까? 이러한 복잡한 정보를 확인할 필요가 없습니다. 내장 된 디버거를 사용하기 만하면됩니다. [* iOS 개발 가이드 : 디버깅 응용 프로그램 *] (http://developer.apple.com/iphone/library/documentation/xcode/conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html) 및 [* Xcode 디버깅 가이드 *] (http://developer.apple.com/iphone/library/documentation/DeveloperTools/Conceptual/XcodeDebugging/000-Introduction/Introduction.html#//apple_ref/doc/uid/TP40007057). – kennytm
이것은 내가 여기에서 찾은 가장 유용한 대답이다. – shannoga