【发布时间】:2016-05-31 02:05:43
【问题描述】:
我使用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 无法释放缓冲区大小的内存,在这种情况下,CFReadStream 和 CFWriteStream 都关闭后为 1M。我也有截图。
【问题讨论】:
标签: ios swift instruments core-foundation cfstream