在Xcode 9中调试iOS应用程序时,如何在lldb中投射指向已知Swift对象类型的指针?
我试图在Swift中使用Xcode 9 / iOS 11 SDK中的内存地址打印对象的描述。我一直在使用这里描述的技术:LLDB (Swift): Casting Raw Address into Usable Type(注意:这种技术在调试macOS应用程序时工作正常。)
error: use of undeclared identifier 'to'
但是在调试iOS应用程序时在Xcode 9中的lldb中键入类似语句会产生以下错误消息:
error: use of undeclared identifier 'unsafeBitCast'
。或者删除"到:"部分:
unsafeBitCast()
。
我搜索了Swift <?php
sort($terms_array);
if( count($terms_array) > 0 ) :
foreach($terms_array as $term) :
$term = '';
$args = array(
'post_type' => 'book',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC'
);
$books_query = new WP_Query( $args )
if ( $books_query->have_posts() ) :
?>
方法替换的文档,但我没有提到它的弃用。这是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 app
感谢您的见解。
答案 0 :(得分:1)
您可以从内存地址创建UnsafeMutablePointer
并使用指针pointee
属性检索对象:
let object = UnsafeMutablePointer<NSTabViewController>(bitPattern: yourMemoryAddress)?.pointee