У меня есть следующая функция ниже, и я не могу избавиться от предупреждения компиляции.Warning = 'withUnsafeBytes' устарела: используйте withUnsafeBytes<R>(_: (UnsafeRawBufferPointer) throws -> R) rethrows -> R
вместо
Я попробовал онлайн-документ о withUnsafeBytes (включая stackoverflow.com), но плохая документация withUnsafeBytes () смешалась с необычной функцией outputStream.write (котораятребует UnsafePointer) сделал меня неспособным понять, как указатель должен быть передан, ни на что ссылается $ 0.Я знаю, что $ 0 является неявным параметром замыкания кода, но полученный код не перечисляет явно параметры замыкания, и я не могу понять, что такое $ 0.
func sendMessage(message: String)
{
// URL Encode the message
let URLEncodedMem = UnsafeMutablePointer<UInt8>.allocate(capacity: message.utf8CString.count * 3 + 1)
defer { URLEncodedMem.deallocate() }
urlEncode( URLEncodedMem, message )
let urlEncodedMsg = String( cString: URLEncodedMem )
// Build the server message to send
let strToSend = "GET /userInput.mtml?userInput=\(urlEncodedMsg) HTTP/1.1\r\n"
+ "Host: \(hostName):\(hostPort)\r\n\r\n"
let data = strToSend.data(using: .utf8)!
_ = data.withUnsafeBytes { outputStream.write($0, maxLength: data.count) } // Warning = 'withUnsafeBytes' is deprecated: use `withUnsafeBytes<R>(_: (UnsafeRawBufferPointer) throws -> R) rethrows -> R` instead
} // sendMessage
Я бы хотел, чтобы код продолжалсянадеюсь, что даже когда Swift внесет другие изменения с помощью withUnsafeBytes.
Я подозреваю, возможно, проблема в том, что withUsafeBytes> не поддерживается ??Не уверен ??