rus*_*net 3 objective-c lldb swift
使用我的调试器(lldb)我可以在Objective-C代码时轻松创建Instances类.
(lldb) e id $my_hello = [hello_from_objc new]
(lldb) po $my_hello
<hello_from_objc: 0x1c4013020>
(lldb) po [$my_hello secret_objc_method]
0x000000000000002a
(lldb) po (int) [$my_hello secret_objc_method]
42
Run Code Online (Sandbox Code Playgroud)
但是当代码是纯Swift时,我无法弄清楚如何用lldb的表达式命令做同样的事情.我很容易在Swift代码中创建一个实例.
let my_swift_framework = Hello_Class()
print("?? \(my_swift_framework.samplePublicVariable)")
Run Code Online (Sandbox Code Playgroud)
这是一个例子:执行Swift代码之后
class HelloClass {
func hello() {
print("hello")
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在调试器窗口中创建一个对象:
(lldb) expression let $myHello = HelloClass()
(lldb) po $myHello
<hello_class: 0x101121180>
(lldb) po $myHello.hello()
hello
Run Code Online (Sandbox Code Playgroud)
如果你收到错误
error: unknown type name 'let'
error: use of undeclared identifier 'HelloClass'
Run Code Online (Sandbox Code Playgroud)
然后显式地将表达式语言设置为Swift:
(lldb) expression -l swift -o -- let $myHello = HelloClass()
(lldb) expression -l swift -o -- $myHello.hello()
Run Code Online (Sandbox Code Playgroud)
或者您可以将lldb语言上下文更改回Swift:
(lldb) settings set target.language swift
归档时间: |
|
查看次数: |
284 次 |
最近记录: |