CFStreamCreateBoundPair
大きなファイルをアップロードするために、ストリームのペアを作成するために使用します。コードは次のようになります。
let readStreamPointer = UnsafeMutablePointer<Unmanaged<CFReadStream>?>.alloc(1)
let writeStreamPointer = UnsafeMutablePointer<Unmanaged<CFWriteStream>?>.alloc(1)
let bufferSize = 1024*1024 //1M buffer size
CFStreamCreateBoundPair(kCFAllocatorDefault, readStreamPointer,writeStreamPointer, Int(bufferSize) as CFIndex)
if let rStream = readStreamPointer.memory?.takeRetainedValue(),writeStream = writeStreamPointer.memory?.takeRetainedValue() {
}
メモリの問題以外はすべてうまくいきます。Instruments に確認したCFStreamCreateBoundPair
ところ、バッファ サイズのメモリを解放できないことがわかりました。この場合、両方を閉じた後、1Mです。CFReadStream
CFWriteStream