В документации для GCDAsyncSocket
указано, что измененные данные могут быть скопированы перед передачей функции записи.GCDAsyncSocket - как мне написать изменяемые данные?
В следующем коде:
func send(buffer: NSMutableData) {
let bufferCopy = NSData(data: buffer)
socket.writeData(bufferCopy, withTimeout: -1, tag: 0)
}
- ли вызов
NSData
правильный способ скопировать буфер? - Будет ли
bufferCopy
сохранено в памяти доwriteData
(то естьasync
), или оно локально для отправки и уничтожается при выходе из функции?
Когда вы говорите «освобожден после того, как вы вернетесь из функции», на какую функцию вы ссылаетесь? – Ravi
В этом случае функция «отправить» – Shripada
writeData может не завершиться после завершения отправки. Я не показывал его в примере кода, но writeData имеет делегат async 'didWriteWithTag'. Будет ли bufferCopy сохранен до тех пор, пока делегат не будет вызван или не будет освобожден при отправке? – Ravi