2017-02-16 25 views
1

В то время как блоки более удобны в использовании, а не в названных функциях, при отладке их значительно не хватает. Я был бы очень рад, если бы был способ получить информацию о блочном контексте, например: местоположение в коде (файл, строка), захваченные переменные, аргументы и т. Д.Swift: описание информационного блока

P.S. Описание в Xcode переменных панели отображает расположение блока, но «Печать» команда печатает только Fuction в консоли

ответ

0

Xcode-х Print Description (что эквивалентно командной lldb линии po команды) находится в Swift, как получить доступ к «зеркала «в Swift Runtime и стандартной библиотеке. Это аналогично ObjectiveC Print Description/po, который вызывает метод description объекта и печатает возвращаемую им строку. Описание - это «представление, которое объект хочет представить себе во внешний мир», в отличие от представления уровня исходного уровня.

В любом случае, если вам нужна дополнительная информация от Print Description, вы должны подать запрос об ошибке с людьми Swift, чтобы улучшить зеркало.

OTOH, информация, которую вы получаете в представлении локальных объектов Xcode, представляет собой строковую строку lldb «dataformatter» для типа функции. См:

http://lldb.llvm.org/varformats.html

для более подробной информации. Вы можете переопределить форматировщик данных для функции с одним из своих, чтобы получить дополнительную информацию. Это верно для любого из встроенных форматировщиков. Я не смотрел, как легко/сложно было бы выкопать то, что вы хотите. Но в любом случае, пожалуйста, сообщите об ошибке с репортером ошибок swift-lldb (или http://bugreporter.apple.com), чтобы улучшить встроенный формат данных с необходимой информацией.