gpt4 book ai didi

ios - 从 Swift 3 中的字节数组中读取值

转载 作者:行者123 更新时间:2023-11-28 08:03:07 25 4
gpt4 key购买 nike

我是 Swift 的新手,我在从 SwiftSocket 接收的字节数组中读取一些信息时遇到了一些问题

XCode 说:“数据 [字节]?13 个值”

[68, 65, 84, 65, 44, 55, 0, 0, 0, 146, 192, 236, 66]

响应应该是这样的"DATA"(68, 65, 84, 65, 44) 然后是一个整数 55 (55, 0, 0, 0),然后是一个 float (146, 192, 236, 66)

如何在 Swift3 中从数组中读取这些值?

        let (data, _, _) = client.recv(13)            
dump(data)
var subAr = data?[9...12]
dump(subAr)

这显示了数组,但我似乎无法读取值。

        let float2 = subAr.withUnsafeBytes { $0.pointee } as Float

给我以下错误:'ArraySlice' 类型的值?没有成员 'withUnsafeBytes'

感谢任何帮助。

最佳答案

.withUnsafeBytes { $0.pointee } as SomeType 是一个适用于 Data 的习语。

试试这个:

//sample data...
var data: [UInt8]? = [68, 65, 84, 65, 44, 55, 0, 0, 0, 146, 192, 236, 66]

let int32Data = Data(data![5..<9])
let int32Value: Int32 = int32Data.withUnsafeBytes{$0.pointee}
print(int32Value) //->55
let floatData = Data(data![9..<13])
let floatValue: Float = floatData.withUnsafeBytes{$0.pointee}
print(floatValue) //->118.37

假设数据包含本地字节序的多字节值(目前所有支持 Swift 的平台都是小字节序)。对于可移植性,这可能不是一个好的假设。

关于ios - 从 Swift 3 中的字节数组中读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com