当前位置: 首页 > 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)

相关文章:

  • 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
  • 国宝归来!子弹库帛书二、三卷抵达北京
  • “80后”萍乡市安源区区长邱伟,拟任县(区)委书记
  • 孟夏韵评《无序的学科》丨误读与重构的文化漂流
  • 国际金价下跌,中概股多数上涨,穆迪下调美国主权信用评级
  • 联合国:欢迎俄乌伊斯坦布尔会谈,希望实现全面停火
  • 河南信阳:对违规吃喝问题不遮丑不护短,露头就打、反复敲打