[_operation cancel];
가 어떻게/해제 비디오 다운로드 완료 후 NSOperationQueue에서 NSInvocationOperation 추가 제거합니까, 동작, 즉. 메시지를 취소 제공?
작업이 완료되면 즉, - isFinished이 true를 반환하면 작업이 자동으로 대기열에서 제거됩니다.
또한 다운로드 진행 중에 특정 비디오를 다운로드하지 않으려면 어떻게해야합니까?
조작을 부분적으로 중단하려면 -cancel 메시지를 보내야합니다. 그러나이 작업을 마술처럼 중단되지는 않습니다. 작업이 취소되었는지 정기적으로 확인하고 작업이 완료되었다고 판단되면 작업을 완료해야합니다. 따라서 청크로 비디오를 다운로드하고 각 청크 이후 작업의 취소 된 상태를 확인해야합니다. 다음 의사는 도움이 될 수 있습니다 : 결국 때까지 작업의 취소 상태를 확인 할 수 없기 때문에
while (![myOperation isCancelled] && thereIsMoreData)
{
download a chunk of data and save it
}
이 의미 예를 들어, 당신은 데이터를 얻을 수 NSURLConnection
의 -sendSynchronousRequest:returningResponse:error:
을 사용할 수 없습니다 데이터가 이미 다운로드되었습니다.
동일한 로직을 구현했지만 NSOperationQueue의 혼동으로 인해 조금 부족했습니다. 당신의 설명적인 대답에 대해 JeremyP에게 감사드립니다. 제가 원했던대로 완벽하게 작동합니다. –
잠시 동안 비디오의 비동기 다운로드 프로세스를 일시 중지 할 수 있습니까? –
나는 잠시 동안 실제로 연결을 끊기를 원한다고 생각한다. 그렇다면 아마 서버에 의존 할 것입니다. 예를 들어, HTTP/1.1은 클라이언트가 부분 다운로드를 요청할 수있게 해주는'range' 헤더를 가지고 있지만, 서버는이를 수행하기위한 로직을 구현할 필요가 없습니다. – JeremyP