1

: 해당 게시물에서 코멘트 Can AFNetworking return data synchronously (inside a block)?비동기 데이터 절차 브레이크를 다운로드 후와 후

하나였다

비동기 프로그래밍 트릭 그 절차, 동기 가정을 파괴하는 것입니다

데이터 당신이 그것을 구할 때 거기에 있습니다. 대신 async를 사용하여 데이터를 요청할 때 콜백을 사용하여 데이터가 준비되면 수행 할 수 있습니다. 이 경우 은 JSON 작업의 성공 블록에서 블록을 호출합니다. 데이터를 반환하는 메서드가 아니라 데이터 다운로드가 완료되면 어떻게해야하는지 알려줍니다.

iOS에서 GCD 및 비동기 다운로드를 사용하고 있지만 비동기 프로그래밍을 할 때이 "절차 중단"을 구현하는 방법을 실제로 이해하지 못합니다.

예를 들어 이미지 URL을 비롯한 많은 데이터가 포함 된 JSON 데이터를 다운로드해야한다고 가정합니다. 나중에 실제 이미지를 다운로드해야합니다.

테이블의 각 셀은 다운로드 한 JSON/이미지의 데이터를 가져옵니다. 이 경우 절차 중단을 어떻게 구현합니까?

답변

1

데이터가 도착하지 않은 동안 테이블 뷰 dataSource는 테이블 뷰에 행이 0이고 회 전자를 표시한다고 알려줍니다. 콜백이 시작되면 데이터를 어딘가에 저장하고 회 전자를 제거한 다음 [tableView reloadData]으로 전화하십시오. 기본적으로 그게 전부입니다.

+0

동의. 'reloadData'가 적절할 때도 있지만 (예 : JSON을 통해 테이블의 모든 데이터를로드 한 경우) 테이블 뷰를 사용하여 작업 할 때 자주 indexPath를 업데이트하거나 해당 UITableViewCell의 특정 컨트롤 만 업데이트하면됩니다. – Rob