내가 작업하는 OS X 응용 프로그램의 주요 구성 요소 중 하나는 NSURLDownload를 기반으로 구축 된 다운로드 시스템입니다.NSURLDownload downloadDidFinish : 너무 일찍 호출했습니다.
대다수의 사용자 (내부 개발 팀은 물론)는 파일 다운로드와 관련하여 아무런 문제가 없습니다. 그러나 전 세계적으로 무작위 사용자 비율이 1 ~ 2 %로 낮은 것으로 나타났습니다. 이러한 사용자의 경우 다운로드가 완료되기 전에 NSURLDownload의 downloadDidFinish : delegate 메서드가 호출됩니다. 예를 들어, 사용자가 5GB 파일을 다운로드하려고 시도하면 downloadDidFinish :는 3.5GB의 데이터가 전송 된 후 호출되어 불완전한 파일이 생성 될 수 있습니다. 분명히 이것은 사용자들에게 많은 좌절감을 안겨줍니다.
우리는이 문제에 많은 시간을 할애했지만 많은 진전을 이루지 못했습니다. 우리는 OS X (잘못?)가 downloadDidFinish를 너무 일찍 호출하는 경우가 하나 이상 있다는 것을 알았습니다. Mac이 여유 공간이 부족할 때입니다. 이것은 왜 이상하지 않은가? 왜냐하면 didFailWithError : delegate 메서드를 대신 호출해야하는 이유는 무엇인가? 그러나 다운로드가 불완전한 대다수의 사용자는 디스크 공간이 충분하므로 디스크 공간이 부족하다고 생각하지 않습니다.
그래서 내 질문에 : 당신은 왜 NSURLDownload downloadDidFinish : 다운로드가 완료되기 전에 호출 할 수 있습니다 이유는 디스크 공간 이외의 어떤 이유를 알고 계십니까? 당신이 우리에게 줄 수있는 조언을 주셔서 감사합니다.
소스에 링크 오류가 있거나 인터넷 연결이 끊어 질 수 있습니다. –
우리는 시뮬레이션 오류 (인터넷 끊김 등)를 시도했으며 다운로드 결과 didFailWithError : 호출 중입니다. downloadDidFinish : 호출 중일 수있는 특정 네트워크 오류를 알고 있습니까? – philbert1