我在android项目中有这样的功能
override fun send(data: ByteArray?) {
if (data == null || data.isEmpty()) {
warn { "Empty Request" }
return
}
webSocket?.send(ByteString.of(ByteBuffer.wrap(data)))
}
我很快就写了等效的代码
func send(data: [UInt8]?) {
if(data == nil || data?.count == 0) { return }
var dataString = String(data: Data(bytes: data!, count: data!.count), encoding : String.Encoding.utf8)!
if(self.webSocket != nil) {
self.webSocket!.send(text: dataString)
}
}
但是我发现当UInt8数组的任何元素大于127时,我的代码很快就会中断。 128-255之间的任何值。因此,我将如何迅速实现等效的Java代码。
答案 0 :(得分:-2)
我尝试使用NSString并能够获得数组元素> 127的有效字符串。
这是我的游乐场代码。
import UIKit
var data = [UInt8]()
data.append(0)
data.append(120)
data.append(254)
print(UInt8.max)
print(data)
var dataString = NSString(bytes: data, length: data.count, encoding: 0)
print(dataString as Any)
不确定这是否是正确的编码字符串,并且可能会在另一端引起问题。