CoreData를 사용하여 cannot create BOOL from object
오류가 발생했습니다. 이에 대해 많은 질문을 읽었습니다. 모두 동일한 결론을 이끌어 냈습니다. IB에서의 잘못된 바인딩입니다.
예를 들어 모든 바인딩을 나열 할 수있는 방법이 있습니까, 아니면 바인딩 유형을 확인하는 유틸리티 앱이 있습니까? 아마도 오류를 잡아 내거나 바인딩 된 객체의 이름을 검색 할 수있을 때 호출되는 메서드를 구현하면됩니까? 나는 차라리 누군가를 분석하는 것보다 내 자신을 해결하고자한다. .xib
.잘못된 바인딩을 디버그하는 방법
1
A
답변
1
나는 이것으로 내 머리카락을 꺼내 왔습니다. 수십 가지 또는 잠재적으로 수백 가지의 바인딩이있는 XIB에서는 이것이 어디에서 왔는지 알아내는 것이 거의 불가능합니다. 그러나 마침내 그것을 좁히는 방법을 찾았습니다.
난 그냥-[NSValueBinder _observeValueForKeyPath:ofObject:context]
에 상징적 인 브레이크 포인트를 설정하고
- 작업은 다음과 같이 구성 : 디버거 명령, 실행할 수있는 명령으로
po $rdi
을 입력합니다. 중단 점에 도달 할 때마다 자체 (즉, NSValueBinder 설명)이 인쇄됩니다. 이 ($rdi
)은 x86_64 용이고 다른 아키텍처 용은 입니다.$7 = 4301564448 <NSTextValueBinder: 0x10064aa20>{object: <NSTextFieldCell: 0x10061eea0>, bindings: value=selection.myProperty}
마지막 하나
- 확인은 자동으로 내가 프로그램을 실행할 때 나는 이런 식으로 뭔가를 보일 것 그 콘솔에 관련 로그를 바인딩의 무리를 얻을 이제
을 평가 한 후 계속 분명히 예외를 던지는 것입니다. 나는 보통 어떤 바인딩이 값이 직접적으로 또는 에러가 발생하기 전에 설정되어있는 다른 바인딩으로부터 어떤 뷰인지 파악할 수 있습니다. 도움이되는 또 다른 방법은 문제가되는 객체의 superview
또는 controlView
을 검사하는 것입니다. 위의 예에서 po [0x10061eea0 controlView]
입니다.
관련 문제
- 1. Strace : 잘못된 인수 오류를 디버그하는 방법
- 2. 젠드 스튜디오에서 디버그하는 방법
- 3. Silverlight에서 webservices를 디버그하는 방법
- 4. 요청을 디버그하는 방법
- 5. sitefinity 프로젝트를 디버그하는 방법
- 6. JDK 소스를 디버그하는 방법
- 7. 웹 서비스를 디버그하는 방법
- 8. Tomcat에서 SPNEGO를 디버그하는 방법
- 9. ssh 터널을 디버그하는 방법
- 10. Windows 서비스를 디버그하는 방법
- 11. Eclipse에서 Weka를 디버그하는 방법
- 12. wait_fences 오류를 디버그하는 방법
- 13. IE 버그를 디버그하는 방법
- 14. 토큰을 디버그하는 방법
- 15. 안드로이드에서 쉐이더를 디버그하는 방법
- 16. magento 지불 게이트웨이를 디버그하는 방법
- 17. 자바 응용 프로그램을 디버그하는 방법
- 18. jvm에서 SIGSEGV를 디버그하는 방법 GCTaskThread
- 19. Java에서 CPP DLL을 디버그하는 방법
- 20. IE8에서 javascript 오류를 디버그하는 방법
- 21. 자바에서 호출되는 aix에서 디버그하는 방법
- 22. 웹 서비스를 통해 디버그하는 방법
- 23. 리눅스에서 네트워크 스택을 디버그하는 방법
- 24. 로딩 공유 라이브러리를 디버그하는 방법
- 25. armv5에서 힙 손상을 디버그하는 방법
- 26. Qt 레이아웃 문제를 디버그하는 방법
- 27. iOS : UI 지연을 디버그하는 방법
- 28. Magento - 레이아웃 문제를 디버그하는 방법
- 29. Jquery 대화 상자를 디버그하는 방법
- 30. 메모리 부족 문제를 디버그하는 방법
고마워! 나는 그런 디버거 영웅이 아니므로, 나는 결코 그것을 생각하지 않을 것이다! – 11684
나는이 문제를 일으킬 수있는 일반적인 문제에 대해 알고 있습니까? 내가 직접 붙여 넣은 사본을 붙여 넣기 복사했습니다. –