Консоль отладки не показывает значения для Swift + Objective-C

Мое приложение использует Swift и стороннюю библиотеку в Objective-C. Когда мой отладчик переходит в код Objective-C, консоль отладки не отображает значения моей строки Swift правильно. Вместо этого он не может читать данные. Как мы можем решить эту проблему?

enter image description here

Ответы

Ответ 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 не работает.