2012-07-24 1 views
0

MKNetworkKit을 스트림에서 데이터로 작업하는 방법을 알아 내려고하고 있습니다. 일부 데이터가 다운로드되었음을 알 수 있지만 (상태 표시 줄의 표시기) 실제로 다운로드 된 후 그 데이터가 어떻게되는지 알지 못합니다. connection: didReceiveData:의 본문에 NSLog 문을 넣었지만 스트리밍 중에는 호출되지 않았습니다. 어떤 문제를 해결할 수있는 방법이 있습니까?iOS에서 MKNetworkKit으로 스트리밍

편집

내 질문은 정확했다 죄송합니다. 파일로 스트리밍하는 방법을 알고 있지만 메모리로 스트리밍해야합니다 (NSData 인스턴스가 바람직 함). 좋아, NSOutputStream 메서드 initWithBytes:capacity:으로 인해 다시 단순 해 보인다. 그리고 내 문제는 여기에, 내 스트림에 정의되지 않은 길이가 있으므로 메모리에 막대한 영향이있을 것입니다. 나는 무엇을해야할지 모른다. 내 완벽한 솔루션이 이런 식으로 작동합니다. 스트림의 작은 데이터 청크가 다운로드 된 후 처리되고 폐기됩니다.

답변

1

outputStreamToBuffer:capacity: 메서드를 사용하여 스트림을 만들 수 있습니다.

버퍼의 경우 순환 버퍼를 사용할 수 있으므로 스트림이 스트림에 쓸 때 읽을 수 있습니다. 훌륭한 구현 (및 설명)은 here입니다.

+0

그게 제가 찾고있는 것입니다! 감사합니다. 조금 늦었지만 감사 해요! – wczekalski

0

파일 다운로드 스트리밍은 MKNetworkKit을 사용한 3 행의 마법입니다.

//Create a MKNetworkOperation for the remote URL. 

MKNetworkOperation *op = [self operationWithURLString:remoteURL 
                params:nil 
               httpMethod:@"GET"]; 

// add your output stream, in this case a file 
[op addDownloadStream:[NSOutputStream outputStreamToFileAtPath:filePath 
                  append:YES]]; 
// enqueue the operation to a MKNetworkEngine. 
[self enqueueOperation:op]; 

그게 전부입니다.

+0

죄송합니다. 제 질문은 정확하지 않았습니다. 방금 편집 했으니 까 (: – wczekalski

+0

)'[self operationWithURLString : params : httpMethod :]'메서드를 직접 사용하는 방법, 하위 클래스가 필요합니까? 간단한 파일 다운로드를위한 기본 예제는 무엇입니까? – Hemang