我正在swift中为iOS设备上的应用创建一个TCP客户端。我正在使用NSOuputStream在服务器上发送数据。 我们的协议是JSON类型,我们必须首先发送json(unsigned Int 32位)的长度,然后发送JSON内容(作为UTF8字符串)。
除了我找不到如何使用NSOutputStream的write(_:maxLength:)
函数编写我的Int之外,每件事都运行良好。
要将我的JSON字符串转换为UnsafePointer<UInt8>
,请使用以下
//var json: String
let encodedData = [UInt8](json.utf8)
let result = outputStream?.write(encodedData, maxLength: encodedData.count)
有人知道如何为Int做这件事吗?
感谢您的帮助!
答案 0 :(得分:6)
你应该可以这样做:
var int = 100
let result = withUnsafePointer(&int) {
outputStream?.write(UnsafePointer($0), maxLength: sizeof(Int))
}
编辑:阅读Int
你可以做的
func getInt(ptr: UnsafePointer<UInt8>) -> Int {
return UnsafePointer(ptr).memory
}