Мое приложение использует Swift и стороннюю библиотеку в Objective-C. Когда мой отладчик переходит в код Objective-C, консоль отладки не отображает значения моей строки Swift правильно. Вместо этого он не может читать данные. Как мы можем решить эту проблему?
Консоль отладки не показывает значения для Swift + Objective-C
Ответ 1
Если вы используете xcode 7.3, вы можете отлаживать быстрые классы, но xcode менее 7.3 вы можете отлаживать для объектного класса c. И быстрой, и объективной поддержки c нет. Вы можете скопировать вставку этих объективных переменных c и вы можете распечатать объективные переменные c с помощью "po objectC_variable".
Ответ 2
Я полагаю, вы могли бы использовать объектный заголовок моста C также для использования объектной библиотеки c в Swift. Я вижу, что как адрес электронной почты, так и пароль отображаются как Swift._NSContiguousString. И может быть, если заголовок моста, созданный для вашей библиотеки, может привести к какой-либо проблеме или не выполнить ее правильно, не уверен. Поскольку, если мосты работали, Swift._NSContiguousString рассматривался как "NSString", и вы могли бы просто преобразовать его как "String". Это то, что я думаю, вы можете проверить заголовок моста.
Ответ 3
вы можете использовать po {{variable_name}}
на lldb для значения времени выполнения печати, а также использовать e {{variable_name}}
для печати и e {{variable_name}} = {{value}}
для установки нового значения.
Внимание: когда вы используете po autocomplete, но при использовании e autocomplete не работает.