2015-01-29 2 views
-1

나는 서버로 보내고 응답을 얻어 항목 목록을 반복하는 기능을 가지고 있습니다. 문제는 루프가 서버가 처리 할 수있는 것보다 빠르다는 것입니다. 응용 프로그램을 정지하지 않고 루프를 느리게하는 방법을 찾아야합니다. 잠깐 동안 루프가 다음 항목으로 이동하는 것을 지연시키는 방법이 있습니까? 다른 언어에서는 수면 (간격)과 같은 것을 사용합니다.루프 내에서 느려짐

+1

이것은 의미가 없습니다. 왜 서버 프로세스를 느리게하고 싶습니까? – Rafael

+0

나는 서버 프로세스 속도를 늦추지 않을 것이다. 서버로 전송되는 각 요청 사이의 시간을 늦추고 있습니다. 현재는 루프가 모든 요청 (300+)을 가능한 빨리 전송하여 시간 초과 오류가 발생합니다. – BooMSticK

답변

0

수면 간격 대신 목록이 비어있을 때까지 동일한 코드를 다시 호출하는 완성 블록을 원하는 것처럼 들립니다. 일단 요청이 끝나면 다음 요청으로 넘어갑니다.

또한 메인 스레드를 유지하므로 사용자 경험이 좋지 않아 잠자기를해야한다고 생각하지 않습니다.

+0

내 목표를 달성하는 데 훌륭한 방법이 될 것 같습니다. 완성 블록을 사용하는 방법을 모르겠습니다. 내가 찾은 모든 사례는 애니메이션을 기반으로 한 것입니다. http 기능을 다루는 예제가 있습니까? post 메서드를 사용하여 서버에 데이터를 보냅니다. – BooMSticK

+0

@BooMSticK AFNetworking을 확인하십시오. 다른 라이브러리로 전환 할 수있는 위치에 있지 않은 경우 해당 코드를 체크 아웃하여 블록을 구현할 수 있습니다. – GoodSp33d

1

처리 속도를 늦추지 마십시오. 네트워크 통화를 제한된 수의 동시 작업으로 작업 대기열에 추가합니다. 네트워크 코드를 NSOperation 하위 클래스로 다시 작성해야 할 수도 있지만 매우 간단합니다. this tutorial에서 몇 가지 예를 볼 수 있습니다.

어쨌든 만들 수있는 동시 네트워크 연결 수에는 기본 제한이 있지만 서버의 한계가 그보다 낮거나 네트워크 연결이 포화되어 나중에 전화가 걸리는 것처럼 들리지만 시작하기 전에 시간 초과되었습니다.