You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何将0x01转换为字节数组并转为NSData类型

在Swift中将"0x01"转换为字节数组并转为NSData的方法

步骤说明

  1. 移除十六进制字符串的0x前缀,提取纯十六进制字符
  2. 将纯十六进制字符串转换为UInt8类型的单字节数值
  3. 将数值存入字节数组
  4. 把字节数组转换为NSData

代码实现

// 原始输入的十六进制字符串
let hexInput = "0x01"

// 移除"0x"前缀,获取纯十六进制部分
let pureHex = String(hexInput.dropFirst(2))

// 转换为UInt8类型(校验字符串是否为有效十六进制格式)
guard let singleByte = UInt8(pureHex, radix: 16) else {
    // 处理转换失败的情况,比如输入格式错误
    print("Invalid hex string format")
    return
}

// 构造字节数组
let byteArray: [UInt8] = [singleByte]

// 转换为NSData
let nsData = NSData(bytes: byteArray, length: byteArray.count)

简化写法(利用Swift Data桥接)

Swift的Data类型可直接与NSData桥接,也可以这样实现:

let swiftData = Data([singleByte])
let nsData = NSData(data: swiftData)

额外处理(适配无前缀的情况)

如果输入字符串可能没有0x前缀,可以增加前缀判断逻辑:

let pureHex: String
if hexInput.hasPrefix("0x") {
    pureHex = String(hexInput.dropFirst(2))
} else {
    pureHex = hexInput
}

内容的提问来源于stack exchange,提问作者Anjali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:31:34