2013-11-01 2 views
0

저는 웹 서비스 호출 및 구문 분석을 포함하는 응용 프로그램에서 작동하는 ios sdk를 처음 사용합니다. JSOn.i에는 첫 번째보기에 두 개의보기 컨트롤러가 있습니다. 버튼 클릭시 웹 서비스를 호출하고 있습니다. 두 번째보기에서 나는 테이블보기에서 모든 레코드를 표시해야합니다. 모든 것이 잘 작동하고, 파싱 값도 올바르게 전달됩니다. 값은 늦게 나오고 테이블은 빈 값을 표시합니다. 하지만 다시 돌아올 때 다시 올 때 모든 버튼이 표시됩니다.이 상황을 어떻게 처리 할 수 ​​있습니까?웹 서비스 데이터가 늦어지고 테이블보기가 비어 있습니다.

+0

그냥 tableview를 다시로드하고 확인하십시오. –

+0

'비동기 적으로'또는 '동시 적으로'전화를 걸고 있습니까? UI를 실행하는 메인 스레드에서 호출을 수행하지 않기 때문에 (비동기 적으로) 응용 프로그램이 계속 작동합니다 (나는 이것이 당신이하는 일이라고 생각합니다). 메인 스레드에서'Synchronously'가 실행되므로 데이터가 반환 될 때까지 UI가 업데이트되지 않습니다. 너 뭐하고있어? – Popeye

답변

0

비동기 다운로드의 장점은 메인 스레드가 아닌 다른 것들을 준비하는 것입니다. 모든 UI 구성 요소는 응용 프로그램 주 스레드에 의해 업데이트됩니다. 사용자의 경우 TableView UI가 주 스레드에서 업데이트되고 별도로 진행됩니다. 나는 당신이 여기에서 놓칠지도 모르는 물건이 다운로드를하고 난 후에 알림을 얻지 못한다고 생각한다. 다운로드 프로세스가 완료된 후 알림을 정렬하면 [tableviewobject reload];을 호출하여 tableView를 업데이트하면됩니다. 어느 것이 모든 tableview 다시로드 (이것은 모든 tableview 다시 새로 고치는 것입니다). 행운을 빕니다.

+0

- 이것은 괜찮지 만 처음으로 셀 데이터 값이 null입니다. 처음으로 테이블을 다시로드하는 방법 – user2902101

0

데이터를 다운로드 한 후에 테이블보기를 새로 고치십니까? 테이블보기 컨트롤러에서 다음과 같이 표시됩니다.

[self.tableView reload];

+0

네, 괜찮습니다.하지만 처음 값 데이터는 null입니다. 우리가 처음으로 테이블을 다시로드하는 방법 – user2902101

관련 문제