Выберите интересующий вас метод или поместите текстовый курсор внутри него.
Откройте меню «Связанные файлы» с помощью значка в верхнем левом углу редактора. (Это кнопка слева от кнопки «Назад»).
Перейдите в подменю «Callers» для получения списка всех методов, которые вызывают выбранный метод, и щелкните любой из них, чтобы перейти к этому файлу и методу.
В картинках ...
Пара заметок:
Вы можете сделать это для свойств тоже.
Обратите внимание, что когда вы выбираете вызывающий метод из меню Callers для перехода туда, где был вызван ваш метод, Xcode выделяет только первый вызов. Каждый вызывающий метод будет отображаться в списке «вызывающих» только один раз, даже если он содержит много вызовов вашего метода. Поэтому, если вы пытаетесь внести какие-то изменения в каждое место вашего приложения, где вызывается метод, будьте осторожны, чтобы не пропустить некоторые из них в тех местах, где вызывающий метод содержит два вызова интересующего вас метода.
Стандартный ярлык для вызова меню, ^1поэтому я обычно могу нажать, ^1, c, enterчтобы вызвать список.
Питер Тейл
Это находит все Callers метода и родительских реализаций. Есть ли способ найти абонентов только этой реализации?
Даниэль Каплан
1
@DanielKaplan Я бы не догадался, поскольку, по крайней мере, в некоторых случаях у компилятора не будет способа узнать, какая реализация должна быть вызвана.
Марк Амери
Мой метод вызван init, и это вызывает любой метод, названный initтакже. Не такой умный ...
Натан Х
36
Да, откройте редактор Assistant и вместо «коллег» выберите «Callers».
Вам не нужно использовать редактор split для этого, хотя это может быть удобно, если вы собираетесь редактировать множество вызывающих методов в быстрой последовательности. Смотри мой ответ.
Марк Амери
18
Начиная с версии XCode 4.5 вы можете нажать «Показать параметры поиска» в поле поиска навигатора поиска. Там вы можете указать «Ссылки на символы»
Это небольшое улучшение по сравнению с обычным поиском, но оно возвращает все ссылки, а не только конкретную, которую вы ищете. Например, если у вас есть класс со свойством height, поиск ссылок на символы в вашем свойстве height будет возвращать ссылки на все другие используемые вами свойства высоты, поэтому вам все равно придется просмотреть результаты, чтобы найти те, которые вы хотеть. Взлом, который работает довольно хорошо, можно посмотреть здесь: stackoverflow.com/a/5457479/850721
Поместите точку вставки в вызов или объявление метода и выберите «Найти»> «Найти выбранный символ в проекте». Для многокомпонентных селекторов это только выделит первую часть, но поиск, кажется, работает относительно надежно. Вы также можете использовать Find Call Hierarchy, которая вместо этого выделяет всю строку.
Соответствующий пункт контекстного меню (Найти выбранный символ в рабочей области) также работает, но немного сложнее заставить работать должным образом. Убедитесь, что текст не выделен, иначе он будет искать выбранное слово, а не весь селектор. Для этого вы можете щелкнуть левой кнопкой мыши, прежде чем щелкнуть правой кнопкой мыши (или удерживая нажатой клавишу «Control») в том же месте. Нет такой проблемы с контекстной иерархией поиска вызовов.
^1
поэтому я обычно могу нажать,^1, c, enter
чтобы вызвать список.init
, и это вызывает любой метод, названныйinit
также. Не такой умный ...Да, откройте редактор Assistant и вместо «коллег» выберите «Callers».
источник
Начиная с версии XCode 4.5 вы можете нажать «Показать параметры поиска» в поле поиска навигатора поиска. Там вы можете указать «Ссылки на символы»
источник
Выберите функцию, нажмите cmd-shift-A, «Вызов»
источник
Поместите точку вставки в вызов или объявление метода и выберите «Найти»> «Найти выбранный символ в проекте». Для многокомпонентных селекторов это только выделит первую часть, но поиск, кажется, работает относительно надежно. Вы также можете использовать Find Call Hierarchy, которая вместо этого выделяет всю строку.
Соответствующий пункт контекстного меню (Найти выбранный символ в рабочей области) также работает, но немного сложнее заставить работать должным образом. Убедитесь, что текст не выделен, иначе он будет искать выбранное слово, а не весь селектор. Для этого вы можете щелкнуть левой кнопкой мыши, прежде чем щелкнуть правой кнопкой мыши (или удерживая нажатой клавишу «Control») в том же месте. Нет такой проблемы с контекстной иерархией поиска вызовов.
источник
С xcode 4 вы можете теперь щелкнуть правой кнопкой мыши по ссылкам и выбрать «перейти к определению».
источник