안녕하세요, 저는 웹 서버에서 yaml 파일을 가져오고 있습니다. 지역 YAML 파일과 큰 내 NSInputStream
작업 (사용하여 파일 : //filename.yaml URL 스킴)NSInputStream은 서버에서 파일을 가져 오지 않고 로컬 파일과 함께 작업합니다.
여기에 관련 코드가있다 :
NSInputStream * stream = [[NSInputStream alloc] initWithURL:yamlURL];
YAML의 URL은 http 같은 것이있다 : // MyIP에 : 8000 /assets/test.yaml 브라우저에서 열면 파일 다운로드가됩니다 ...
아무 생각 나니?
을. 'initWithURL'과'inputStreamWithURL'는 같은 URL을 사용하여 NSURLConnection을 사용하여 문제의 파일을 성공적으로 다운로드 할 수있을지라도'nil'을 반환합니다. 'initWithURL'을 성공 시키면 성공합니까? – Rob
내 의견보기 ... 기본적으로 파일 작업 전에 NSData로 다운로드하여 해결했습니다. – Msencenb
예, 잘 알고 있습니다. 'NSData'는 큰 (수백 MB) 파일에는 실용적이지 않습니다. 분명히, 나는 로컬 파일에 다운로드 할 수있다. (나는 이미 주어진 시간에 NSData에 모든 것을 로딩하는 것을 피하는 다운로더 클래스를 가지고있다.) 그러나 그것조차도 엄청나게 비효율적이다. (나는 큰 홀딩 다운로드가 끝나기를 기다려야한다. 웹 기반 스트리밍 솔루션을 원할 때 사용하기 전에). 내가 원하는 것을하기 위해 NSInputStream을 서브 클래스하려고하는데, 어리석은 것처럼 보일 것이다.'inputStreamWithURL'은 그냥 일을해야한다. 나는 내 자신을 굴리기 전에 그 일을 할 수 있는지 알고 싶다. – Rob