0

我试图弄清楚如何让 MKNetworkKit 处理来自流的数据。我可以看到正在下载一些数据(状态栏上的指示器),但我不知道实际下载后该数据会发生什么。我在主体中放置了一个 NSLog 语句,connection: didReceiveData:但在流式传输期间没有调用它。任何指示如何解决该问题?

编辑

抱歉,我的问题不准确。我知道如何流式传输到文件,但我需要流式传输到内存(最好是 NSData 实例)。好的,由于 NSOutputStream 方法,它再次看起来很简单initWithBytes:capacity:。我的问题就在这里,我的流的长度未定义,因此会对内存产生巨大影响。我不知道该怎么办。我的完美解决方案是这样工作的。流中的小块数据在下载后被处理,然后被丢弃。

4

2 回答 2

1

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

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

于 2012-10-17T16:32:29.260 回答
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];

就是这样。

于 2012-07-26T03:28:07.087 回答