相关疑难解决方法(0)

如何在swift中将字节转换为浮点值?

这是我将字节数据转换为float的代码.我尝试了这个网站给出的每个答案.我得到了这个"<44fa0000>"字节数据的指数值

    static func returnFloatValue(mutableData:NSMutableData)->Float
    {
       let qtyRange = mutableData.subdataWithRange(NSMakeRange(0, 4))
       let qtyString = String(qtyRange)
       let qtyTrimString = qtyString.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: "<>"))
       let qtyValue =  Float(strtoul(qtyTrimString, nil, 16)/10)
       return qtyValue
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

floating-point byte nsmutabledata ios swift

6
推荐指数
2
解决办法
4654
查看次数

如何在Swift 3中将数据转换为Int?

有很多来源解释如何在Swift 2中制作它作为基础:

var value: Int = 0
let data: NSData = ...;
data.getBytes(&value, length: sizeof(Int))
Run Code Online (Sandbox Code Playgroud)

然后我更新了Swift 3的语法/命名:

var value: Int = 0
let data: NSData = ...;
data.copyBytes(to: &value, count: MemoryLayout<Int>.size)
Run Code Online (Sandbox Code Playgroud)

然而它不起作用.编译器不喜欢它的类型value,它应该是UInt8.但我想要Int.谁知道我怎么能做到这一点?

ios swift swift2 swift3

6
推荐指数
1
解决办法
8856
查看次数

如何在 swift 中将浮点值转换为字节数组?

我用于获取字节数据的代码,但我没有获取浮点值的正确字节数据

let count = data.length / sizeof(UInt32)

// create array of appropriate length:
var array = [UInt32](count: count, repeatedValue: 0)

// copy bytes into array
data.getBytes(&array, length:count * sizeof(UInt32))

print(array)
Run Code Online (Sandbox Code Playgroud)

floating-point int byte swift

3
推荐指数
2
解决办法
8834
查看次数

在Swift中将数据读入结构

我正在尝试使用该方法将其读Data入Swift 4 .问题structwithUnsafeBytes

网络UDP数据包具有以下格式:

data: 0102 0A00 0000 0B00 0000

01           : 1 byte : majorVersion      (decimal 01)
02           : 1 byte : minorVersion      (decimal 02)
0A00 0000    : 4 bytes: applicationHostId (decimal 10)
0B00 0000    : 4 bytes: versionNumber     (decimal 11)
Run Code Online (Sandbox Code Playgroud)

然后我有一个扩展Data,需要一个startlength几个字节来读取

extension Data {
    func scanValue<T>(start: Int, length: Int) -> T {
        return self.subdata(in: start..<start+length).withUnsafeBytes { $0.pointee }
    }
}
Run Code Online (Sandbox Code Playgroud)

这在逐个读取值时正常工作:

// correctly read as decimal "1"
let …
Run Code Online (Sandbox Code Playgroud)

swift

3
推荐指数
2
解决办法
929
查看次数

如何将 BLE 设备中的十六进制数据分解为可用数据?(速度和节奏)

我正在构建一个仅显示速度和节奏的 iOS 应用程序。我已成功连接到 BLE 设备并接收数据。我根本不知道从这里该做什么。我如何理解这些数据?

这是收到的数据

central.state is .poweredOn
<CBPeripheral: 0x2838f48c0, identifier = A7DBA197-EF45-A8E5-17FB-DF8505493179, name = DuoTrap S, state = disconnected>
Peripheral(id: 0, name: "DuoTrap S", rssi: -70)
Connected!
<CBService: 0x281cbd380, isPrimary = YES, UUID = Cycling Speed and Cadence>
<CBCharacteristic: 0x282de4420, UUID = 2A5B, properties = 0x10, value = {length = 11, bytes = 0x03030000005d1601008212}, notifying = NO>
2A5B: properties contains .notify
<CBCharacteristic: 0x282df8660, UUID = 2A5C, properties = 0x2, value = {length = 2, bytes = 0x0700}, notifying …
Run Code Online (Sandbox Code Playgroud)

ios core-bluetooth bluetooth-lowenergy swift

2
推荐指数
1
解决办法
1427
查看次数

如何使用Swift将Data/NSData转换为整数数组

我有一个数据,我从服务中的一个特征收到

let value = characteristic.value
Run Code Online (Sandbox Code Playgroud)

数据类型的这个"值".

在此值中,有20个字节包含5个类型为Uint8或int 1,2,3,4,5的数字.

如何从此数据值中获取这些整数?

arrays ios swift swift3

1
推荐指数
1
解决办法
3183
查看次数

将 Swift 数据转换为 Int16

我有一个 Java 服务器,我在其中使用 ashort[]并将其转换为byte[](Big Endian)并将其发送到 iOS 设备。我无法将此字节数组(或DataSwift 中的)转换为int16数组 ( [Int16])。我还想知道我假设 Javashort类型的 Swift 等价物是 Swift 中的 a 是否正确Int16

java ios swift

1
推荐指数
1
解决办法
1708
查看次数

如何在 Swift 5 中将“Date”转换为“Data”,反之亦然?

我正在尝试在钥匙串中保存日期,并且(根据我的理解)这首先需要将Date对象转换为Data对象。

这个 Stack Overflow Q/A解释了如何在 Swift 3 中做到这一点(或至少是其中的一部分),但我希望有人可以提供 Swift 5 中的 to/from 函数(因为该解决方案中至少有一种方法)已被弃用,我担心其他东西也没有经受住时间的考验)。

keychain nsdata swift swift5

1
推荐指数
1
解决办法
988
查看次数

如何使用 BigEndian 将浮点型转换为数据?

我有:

Float(bitPattern: UInt32(bigEndian: data.withUnsafeBytes { $0.pointee } ))
Run Code Online (Sandbox Code Playgroud)

这段代码正在将数据转换为浮点数,但我想要反转它,意思是浮点数到数据。请指导我如何转换。

arrays byte uint8t swift

0
推荐指数
1
解决办法
395
查看次数