0

MKNetworkKit をストリームからのデータで動作させる方法を理解しようとしています。一部のデータがダウンロードされていることはわかりますが (ステータス バーのインジケーター)、実際にダウンロードされた後にそのデータがどうなるかわかりません。body 内に NSLog ステートメントを配置しましたconnection: didReceiveData:が、ストリーミング中に呼び出されません。その問題を修正する方法はありますか?

編集

申し訳ありませんが、私の質問は不正確でした。ファイルにストリーミングする方法は知っていますが、メモリにストリーミングする必要があります (できれば NSData インスタンス)。NSOutputStream メソッドのおかげで、これもまた単純に思えinitWithBytes:capacity:ます。そして私の問題はここにあります。私のストリームの長さは定義されていないため、メモリに多大な影響を与えます。どうすればいいのかわからない。私の完璧なソリューションは次のように機能します。ストリームからのデータの小さなチャンクは、ダウンロードされて処理され、その後破棄されます。

4

2 に答える 2

1

outputStreamToBuffer:capacity:メソッドを使用してストリームを作成できます。

バッファに関しては、循環バッファを使用できるため、ストリームが書き込むときにそこから読み取ることができます。優れた実装 (および説明) はこちらです。

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

それでおしまい。

于 2012-07-26T03:28:07.087 に答える