Estoy tratando de establecer alguna variable de conveniencia en un contexto rápido y acceder a ella desde un contexto ObjC.
(lldb) expression -l swift -- var $answerSwift = 42 (lldb) expression -o -l swift -- $answerSwift 42 (lldb) expression -o -l objc -- $answerSwift error: use of undeclared identifier '$answerSwift'Al revés funciona perfectamente bien:
(lldb) expression -l objc -- int $answerObjc = 42 (lldb) expression -o -l swift -- $answerObjc 42¿Cómo puedo mover un valor del alcance rápido (?) al alcance de objC?
Es posible crear un "contexto temporal" que se evaluará y luego se pasará como una variable a la expresión poniéndola en acentos graves.
Así que esto va a funcionar para puntos de interrupción en código Swift:
(lldb) expression -l swift -- var $answerSwift = 42 (lldb) expression -o -l objc -- `$answerSwift` 42Cuando tengo un punto de interrupción en el código Swift, traté de establecer una var objc como esta:
(lldb) expression -l objc -- id $label = (id)self.label error: use of undeclared identifier 'self' El contexto objc no puede acceder a la variable swift self , por lo que falla.
Pero cuando self.label en backticks para crear el contexto rápido temporal, puedo asignarlo a la variable 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>>