在Swift 5中使用outputStream.write的问题

时间:2019-03-29 20:34:57

标签: ios swift swift5

我正在将一些代码移植到Swift 5,并且由于不赞成withUnsafeBytes而无法写入输出流。

var num = 0
let cnt = TXqueue.count
var d = Data(capacity: cnt)
for i in 0..<cnt {
   d.append(UInt8(TXqueue.elements[i]))
}
_ = d.withUnsafeBytes { num = (mySession?.outputStream?.write($0, maxLength: cnt))! }

我收到错误: 不推荐使用“ withUnsafeBytes”:改为使用withUnsafeBytes<R>(_: (UnsafeRawBufferPointer) throws -> R) rethrows -> R

我曾经以为使用$ 0.baseAddress(根据https://stackoverflow.com/a/25762128/1187415中的Swift 5更新)可以解决此问题,就像这样:

_ = d.withUnsafeBytes { num = (mySession?.outputStream?.write($0.baseAddress, maxLength: cnt))! }

但是导致另一个错误: 类型'UnsafePointer <_>'的值没有成员'baseAddress'

不确定从这里要去哪里。

0 个答案:

没有答案