首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift):在Xcode9 iOS模拟器/设备中将原始内存地址转换为可用类型

Swift):在Xcode9 iOS模拟器/设备中将原始内存地址转换为可用类型
EN

Stack Overflow用户
提问于 2017-09-15 04:10:25
回答 1查看 1K关注 0票数 0

在Xcode9中调试iOS应用程序时,如何在lldb中转换指向已知Swift对象类型的指针?

我试图在Swift中打印一个对象的描述,给出它在Xcode9/ iOS 11SDK中的内存地址。我一直在使用这里描述的技术:LLDB (Swift): Casting Raw Address into Usable Type (注意:这种技术在调试macOS应用程序时效果很好。)

(lldb) p unsafeBitCast(0x00006080000e2280, to: UIViewController.self)

但是,在调试iOS应用程序时,在Xcode9中的lldb中键入类似的语句会产生以下错误消息:

error: use of undeclared identifier 'to'。或者去掉"to:“部分:

error: use of undeclared identifier 'unsafeBitCast'

我搜索了替换Swift unsafeBitCast()方法的文档,但我没有找到任何关于它已被弃用的内容。这是lldb / Swift iOS运行时的错误吗?

故障: Xcode 9+ iOS 11模拟器、Xcode 9+ iOS 9.x模拟器、Xcode 9+ iOS 9.x设备

工作: Xcode 8+ iOS模拟器/设备、Xcode 9+ macOS 10.12应用程序

感谢你的见解。

EN

回答 1

Stack Overflow用户

发布于 2017-09-15 04:50:18

您可以从内存地址创建指针,并使用UnsafeMutablePointer pointee属性检索对象:

代码语言:javascript
复制
let object = UnsafeMutablePointer<NSTabViewController>(bitPattern: yourMemoryAddress)?.pointee
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46227486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档