2012-07-24 42 views
0

我想知道如何使MKNetworkKit能够使用来自数据流的数据。我可以看到一些数据正在下载(状态栏上的指标),但我不知道在实际下载数据后会发生什么。我在connection: didReceiveData:的主体内部放了一条NSLog语句,但在流式传输过程中不会调用它。任何指针如何解决这个问题?在iOS上使用MKNetworkKit进行流式传输

编辑

对不起我的问题是不准确的。我知道如何流到一个文件,但我需要流到内存(最好是NSData实例)。好吧,由于NSOutputStream方法initWithBytes:capacity:,看起来很简单。而我的问题在这里,我的流没有明确的长度,所以会对记忆产生巨大的影响。我不知道该怎么办。我的完美解决方案就是这样。处理已下载的流中的小块数据,然后将其丢弃。

回答

1

您可以使用outputStreamToBuffer:capacity:方法来创建流。

至于缓冲区,您可以使用循环缓冲区,以便您可以在流写入到缓冲区时读取它。一个很好的实现(和解释)是here

+0

这就是我一直在寻找!谢谢,有点晚了,但我很感激! – wczekalski 2012-10-17 20:08:54

0

流媒体文件下载是一个MKNetworkKit三线魔术。

//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 2012-07-26 10:36:24

+0

如何使用,直接''[self operationWithURLString:params:httpMethod:]'方法,我需要子类?简单文件下载的任何基本示例? – Hemang 2013-10-04 09:58:07