Найти ссылки на методы в Xcode

Есть ли способ в Xcode найти все места, где был вызван метод или свойство?

Например, в Eclipse вы можете щелкнуть правой кнопкой мыши метод и выбрать " Найти ссылки". Есть ли что-нибудь подобное в Xcode?

7 ответов

  1. Выберите интересующий вас метод или поместите текстовый курсор внутри него.
  2. Откройте меню "Связанные файлы" с помощью значка в верхнем левом углу редактора. (Это кнопка слева от кнопки "Назад").
  3. Перейдите в подменю "Callers" для получения списка всех методов, которые вызывают выбранный метод, и щелкните любой из них, чтобы перейти к этому файлу и методу.

В картинках...

Скриншот шагов 1 и 2 выше

Скриншот шага 3 выше

Пара заметок:

  • Вы можете сделать это для свойств тоже.
  • Обратите внимание, что когда вы выбираете вызывающий метод из меню Callers, чтобы перейти к тому месту, где был вызван ваш метод, Xcode выделяет только первый вызов. Каждый вызывающий метод будет отображаться в списке "вызывающих" только один раз, даже если он содержит много вызовов вашего метода. Поэтому, если вы пытаетесь внести какие-то изменения в каждое место вашего приложения, где вызывается метод, будьте осторожны, чтобы не пропустить некоторые из них в тех местах, где вызывающий метод содержит два вызова интересующего вас метода.

Да, откройте редактор Assistant и вместо "коллег" выберите "Callers".

Выберите функцию, нажмите cmd-shift-A, "Вызов"

Начиная с версии XCode 4.5 вы можете нажать "Показать параметры поиска" в поле поиска навигатора поиска. Там вы можете указать "Ссылки на символы"

Поместите точку вставки в вызов или объявление метода и выберите "Найти"> "Найти выбранный символ в проекте". Для многокомпонентных селекторов это только выделит первую часть, но поиск, кажется, работает относительно надежно. Вы также можете использовать Find Call Hierarchy, которая вместо этого выделяет всю строку.

Соответствующий пункт контекстного меню (Найти выбранный символ в рабочей области) также работает, но немного сложнее заставить работать должным образом. Убедитесь, что текст не выделен, иначе он будет искать выбранное слово, а не весь селектор. Для этого вы можете щелкнуть левой кнопкой мыши, прежде чем щелкнуть правой кнопкой мыши (или удерживая нажатой клавишу "Control") в том же месте. Нет такой проблемы с контекстной иерархией поиска вызовов.

В качестве альтернативы вы можете найти все ссылки на переменную или метод в Xcode 9, используя Find navigator и настроить его как Find -> References -> Matching Word

Интерфейс выглядит так

введите описание изображения здесь

С xcode 4 вы можете теперь щелкнуть правой кнопкой мыши по ссылкам и выбрать "перейти к определению".

Другие вопросы по тегам