将Int转换为UnsafePointer <UInt8>

bob*_*bby 2 nsstream nsoutputstream swift

我正在swift中为iOS设备上的应用程序创建一个TCP客户端.我正在使用NSOuputStream在服务器上发送数据.我们的协议是JSON类型,我们必须先发送json(unsigned Int 32位)的长度,然后发送JSON内容(作为UTF8字符串).

每件事都很好,除了我找不到如何使用write(_:maxLength:)NSOutputStream函数编写我的Int .

要将我的JSON字符串转换为UnsafePointer<UInt8>I,请使用以下内容

//var json: String
let encodedData = [UInt8](json.utf8)
let result = outputStream?.write(encodedData, maxLength: encodedData.count)
Run Code Online (Sandbox Code Playgroud)

有人知道如何为Int做这件事吗?

谢谢你的帮助 !

Kam*_*xom 6

你应该可以做这样的事情:

var int = 100

let result = withUnsafePointer(&int) {
    outputStream?.write(UnsafePointer($0), maxLength: sizeof(Int))
}
Run Code Online (Sandbox Code Playgroud)

编辑:阅读Int你可以做到的

func getInt(ptr: UnsafePointer<UInt8>) -> Int {
    return UnsafePointer(ptr).memory
}
Run Code Online (Sandbox Code Playgroud)