Можно создать «временный контекст», который будет оцениваться и затем передаваться в качестве переменной в выражение, помещая его в обратные галочки.
Так что это будет работать для точек останова в быстром коде:
(lldb) expression -l swift -- var $answerSwift = 42
(lldb) expression -o -l objc -- `$answerSwift`
42
Когда у меня есть точка останова в коде swift, я пытался установить переменную objc следующим образом:
(lldb) expression -l objc -- id $label = (id)self.label
error: use of undeclared identifier 'self'
Контекст objc не может получить доступ к переменной swift self
,таким образом, это терпит неудачу.
Но, помещая self.label
в кавычки, чтобы создать временный быстрый контекст, я могу назначить его переменной objc:
(lldb) expression -l objc -- id $label = (id)`self.label`
(lldb) expression -l objc -O -- $label
<UILabel: 0x7f8030c03c40; frame = (44 44; 42 21); text = 'Label'; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x6000019b35c0>>