Я использую CFStreamCreateBoundPair
, чтобы создать пару потоков, чтобы загрузить большой файл. Код выглядит следующим образом.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() {
}
Все идет хорошо, кроме памяти issue.I проверить с инструментами и выяснить, CFStreamCreateBoundPair
не может освободить память размера буфера, который в данном случае является 1M после как CFReadStream
и CFWriteStream
являются closed.I есть экран тоже снят.
Я не очень хорошо знаком с каркасом Core Foundation и не знаю, почему он не может быть выпущен автоматически.