2017-11-29 18 views
2

Swift/Xcode에서 디버깅과 스레드를 중심으로 내 머리를 감싸려고합니다. 메서드의 시작 부분에 중단 점을 추가했으며 콜 스택에서 여러 메서드에 대한 참조를 볼 수 있습니다. 첫 번째 방법은 UIImageView를 만드는 데 사용되고, 두 번째 방법은 뷰에 UIImage를 추가하는 것이고, 세 번째 방법은 탭 제스처를 처리하는 것입니다. 사용자가 화면을 두 드렸을 때, 마지막 메소드는 호출이며, 따라서 처음 두 메소드를 호출합니다. 이것이 왜 내가 콜 스택 (callstack)에서 볼 수있는 것인가? 호출 스택의 세 번째 메소드 아래 점선은 무엇입니까? 사진 아래를 참조하십시오 : 무슨 일이 일어나고 있는지신속한 중단 점 및 스레드 이해

enter image description here

답변

2

귀하의 설명이 맞는지, 사용자가 설정 한 중단 점은 중단 점에 도착하는 방법의 호출 스택이 포함되어 있습니다. 이 경우 main 스레드가 터치 이벤트를 수신하고 있는데, 하나가 발생하면 handleSingleTap: 메서드가 실행 된 다음 다른 메서드가 호출되어 다른 메서드에 중단 점이있는 코드 줄이 나타납니다. 파선은 그다지 중요하지 않습니다. 기본 코드 대신 앱의 코드가 실행되기 시작하는 지점을 묘사합니다. 호출 스택을 읽기 쉽도록하기 위해서입니다. 호출 스택이 맨 아래로 이동한다는 점에서 혼란 스러울 수 있습니다. 맨 아래 메소드가 스택 맨 위에 놓여 있기 때문에 맨 아래에서 시작하여 중단 점이있는 메소드로 이동합니다.

+0

감사합니다. 이제는 더 의미가 있습니다. 맨 아래에서 읽는 것이 훨씬 쉬워집니다. –