Есть ли способ увидеть порядок, в котором вызываются функции, когда мы выполняем программу в Xcode?

Есть ли способ увидеть порядок, в котором вызываются функции, когда мы выполняем программу в Xcode? Например, если во время выполнения мы нажмем кнопку, соответствующую определенному IBAction, сможем ли мы после этого увидеть порядок вызовов методов? Я знаю, что отладчик доступен, но он кажется особенно полезным, когда вы точно знаете, какие вызовы методов вы ищете.

Любая помощь приветствуется!


person Sergio Charles    schedule 30.07.2019    source источник
comment
Непонятно, что вы спрашиваете. Ваши методы? Методы какао? Это МНОГО методов! Какую проблему ты пытаешься решить?   -  person matt    schedule 31.07.2019
comment
@matt Привет, Мэтт! Извините за неясность. Я имел в виду свои методы. Я пытаюсь проанализировать некоторый открытый исходный код, и я хотел бы увидеть порядок выполнения определенных функций (реализованных в основном проекте, а не в модулях) после того, как пользователь выполнит действие.   -  person Sergio Charles    schedule 31.07.2019
comment
Просто вставьте print(#function) в качестве первой строки каждого метода. Я знаю, это звучит примитивно, но благодаря этому я многому научился.   -  person matt    schedule 31.07.2019
comment
«но это кажется особенно полезным, когда вы точно знаете, какие вызовы методов вы ищете». Я не могу с этим согласиться. Просто продолжайте говорить «Шаг внутрь». На самом деле вы можете отслеживать своих вызываемых абонентов или иерархию вызовов, вообще не запуская никакого кода. Я не думаю, что вы цените инструменты, которые вам дали.   -  person matt    schedule 31.07.2019
comment
@matt Хорошо, большое спасибо! Может быть, я просто не обращаю на них внимания! :)   -  person Sergio Charles    schedule 31.07.2019
comment
@matt Извините, что снова беспокою вас. Вы упомянули, что мы можем отслеживать вызываемых абонентов и иерархию вызовов без запуска какого-либо кода. Не могли бы вы уточнить, как я могу это сделать? Еще раз спасибо!   -  person Sergio Charles    schedule 31.07.2019
comment
Что ж, когда вы выполняете глобальный поиск в навигаторе поиска, вы можете выбрать «Иерархия вызовов». Это великолепно. А если вы находитесь в методе, выберите первый значок на панели перехода и выберите «Вызывающие абоненты» или «Вызываемые абоненты».   -  person matt    schedule 31.07.2019


Ответы (1)


Swift течет сверху вниз. Это хороший пост об этом. Также вы можете запустить точку останова, также добавлено объяснение точки останова. Вы можете использовать их для остановки и ручного перехода Xcode к следующей выполняемой операции, что очень помогает при отладке.

Вы также можете сделать print("Function x") в каждой из имеющихся у вас функций. Затем это напечатает их в порядке времени выполнения.

Swift Flow

Статья о контрольной точке

person Mike    schedule 30.07.2019