当前位置: 首页 > news >正文

Swift CChar元祖转String

iOS有些API是调用C函数,Swift端获得的数据是CChar元祖,需要转成String方便使用,下面的代码以获取手机型号为例

方式一

var systemInfo = utsname()
uname(&systemInfo)
let deviceModel = withUnsafePointer(to: systemInfo.machine)  { tuplePointer in
    let cCharPointer = unsafeBitCast(tuplePointer, to: UnsafePointer<CChar>.self)
    let machine = String(utf8String: cCharPointer)!
    print("machine: \(machine)")
    return machine
}

方式二

var systemInfo = utsname()
uname(&systemInfo)

let mirror = Mirror(reflecting: systemInfo.machine)
let arr = mirror.children.map { $0.value as! CChar }
let machine = String(cString: arr)

http://www.dtcms.com/a/20479.html

相关文章:

  • 12-罗马数字转整数
  • DeepSeek R1 与 OpenAI O1:机器学习模型的巅峰对决
  • python(1)-元组和集合
  • linux-centos nginx 添加stream模块
  • Map和Set
  • FunPapers[2]:www‘24 「快手」连续特征单调性建模
  • 【RocketMQ 存储】消息重放服务-ReputMessageService
  • Java与DeepSeek的完美结合:开启高效智能编程新时代 [特殊字符]
  • JavaSE:数组
  • Pygame中自定义事件处理的方法2-2
  • Linux-文件IO
  • 蓝桥杯篇---8位 ADC/DAC转换芯片 PCF8591
  • AtCoder Beginner Contest 393 —— E - GCD of Subset 补题 + 题解 python
  • 2025-02-16 学习记录--C/C++-PTA 7-21 求特殊方程的正整数解
  • 【css】超过文本显示省略号
  • nodejs:express + js-mdict 网页查询英汉词典,能显示图片
  • 线程池有哪几种状态?
  • AI与SEO协同:智能关键词挖掘与精准部署策略
  • 以若依移动端版为基础,实现uniapp的flowable流程管理
  • 【Spring Boot】SpringBoot自动装配-Import
  • TestHubo简介与安装
  • 让编程变成一种享受-明基RD320U显示器
  • 【中间件】Pulsar集群安装
  • 神经网络新手入门(4)Transformer的创世纪(2017)
  • 0x02递推与递归
  • HTML5 起步
  • SMU Winter 2025 div1 3rd
  • JavaScript严格模式
  • NCHAR_CS和CHAR_CS,导致UNION ALL 时,提示SQL 错误 [12704] [72000]: ORA-12704: 字符集不匹配
  • Python参数的默认值进阶250216