CFStreamCreateBoundPairは4kbのデータをストリームに書き込んでおり、streamはxmlの開始ノードを含み、終了ノードを含まないデータを解析します。コードの記述方法とコードの管理方法により、正しいxmlデータをnsoutputstreamに書き込みます。
CFStreamCreateBoundPair(NULL、(CFReadStreamRef *)&iStream、(CFWriteStreamRef *)&oStream、4096);
CFStreamCreateBoundPairは4kbのデータをストリームに書き込んでおり、streamはxmlの開始ノードを含み、終了ノードを含まないデータを解析します。コードの記述方法とコードの管理方法により、正しいxmlデータをnsoutputstreamに書き込みます。
CFStreamCreateBoundPair(NULL、(CFReadStreamRef *)&iStream、(CFWriteStreamRef *)&oStream、4096);
バインドされたストリームのペアは、書き込みストリームにチャンクで書き込み、他の何かが読み取りストリームからチャンクで読み取ることができるように機能します。transferBufferSize
ここでは 4096 に設定しました。これは、データが書き込みストリームから読み取りストリームに 4096 バイト (4K) 単位で移動されることを示します。ソース データの長さが 4K を超えているが 8K 未満の場合、最初の 4K しか取得していない理由が説明されます。たとえば、データの長さが 6K の場合、最初の 4K が読み取りストリームに送信され、次の 2K がキューに入れられますが、私の理解では、次の 2 つのいずれかが発生するまでバッファで待機します。
CFWriteStreamClose(oStream);
したがって、書き込みストリームに書き込むのが 6K だけの場合は、最後の 2K を読み取りストリームに送信するために、書き込みストリームを閉じる必要があります。そうでなければ、私の期待は、それが永遠にそこにとどまるということです.