2017-04-19 3 views
-2

screen-shoot왜 브레이크 포인트가 실행되지 않습니까?

위의 그림과 같이 왜 중단 점 (line77)을 실행하지 않는지 혼란 스럽습니다. 그리고 71에서 라인 84로 점프합니다.

+0

또한 74,81 행에도 중단 점을 넣고 언젠가는 확실히 77 행 또는 74 행 또는 81 행을 기다려야합니다. – NehaK

+0

@ 네크 감사합니다. – Ringo

답변

1
  1. 당신은 82 줄 번호 73에서 기록 된 71

  2. 코드가 비동기 네트워크 호출의 블록 라인 번호에 변경 가능한 배열을 초기화하는있다. 비동기 란 서버에서 데이터를 가져 오는 동안 해당 블록 아래의 코드가 실행된다는 것을 의미합니다. 성공의 경우 서버에서 데이터를 가져 오는 것을 완료하면 성공 블록이되고 실패하면 실패 블록이됩니다.

그래서 배열이 서버에서 채워지기 전에 반환됩니다. 더 나은 구현을 위해 별도의 메소드 또는 api 클래스를 작성하여 서버에서 데이터를 가져 와서 해당 클래스에서 배열을 채 웁니다.

+0

좋습니다. 감사합니다. 그리고 블록 영역에서 tmpArr을 수정하고 싶습니다. tmpArr 앞에 __block을 추가해야합니까? – Ringo

+0

네, 그렇게 할 수는 있지만 배열이 채워지기 전에 return 문이 실행됩니다. 해당 API 호출을 별도의 메서드로 작성한 다음 해당 메서드를 viewDidLoad 또는 viewWillAppear에서 호출하십시오. –

0

라인 77은 비동기식 GET 메소드가 성공적으로 완료 될 때 호출 될 블록 오브젝트의 일부입니다.

프로그램을 실행시키고 호출이 성공하면 중단 점에 도달합니다.

+0

어떻게 해결할 수 있습니까? 나는 혼자서 이오를 공부하고 비동기를 어떻게 사용하는지 모른다. – Ringo

+0

줄 74,81에 중단 점을 놓아야하며 때로는 줄 77이나 줄 74 또는 81에 가야합니다. – NehaK

관련 문제