Xcode: просмотреть ссылки на переменную?

Я новичок в Xcode. Я не уверен, есть ли способ просмотреть ссылки на переменную, например, "Найти все ссылки" в Visual Studio, щелкнув правой кнопкой мыши на переменную?

Например, в моем файле.h я хотел бы узнать или просмотреть все ссылки на свойство isSet:

@interface MyInterface {
   ...
   BOOL isSet; // view all references to this var?
   ...
}

7 ответов

Решение

Помимо XCode есть IDE AppCode от JetBrains. И в AppCode это легко возможно, просто выберите Search -> Find Usages,

Попробуйте использовать: Найти в проекте -> Как контекстное меню символа. Иногда вы можете вместо этого искать в качестве определения.

Я искал подобный вариант. Я не знаю, почему XCode не включил это. Но есть обходной путь, которым я пользуюсь, пока Apple не предоставит такую ​​возможность в XCode.

Попробуйте это в файле исходного кода (.m),

Select the symbol, right click -> Refactor -> Rename 
-> Give a name whatever you wish, then press Preview. 

Теперь вы можете найти все ссылки. Теперь вы можете Cancel это или не переименовывать его.:)

Найти выбранный символ в рабочей области - это то, что вам нужно

  • щелкните правой кнопкой мыши метод/свойство -> Найти -> Найти выбранный символ в рабочей области
  • сфокусируйтесь на свойстве/методе и нажмите ⇧ + ⌃ + ⌘ + F(или можно заказать индивидуальный)

Выполняет в основном тот же поиск, что и Refactor -> Rename.

Обновление для XCode 12: щелкните правой кнопкой мыши определение -> Показать действия кода -> Вызывающие абоненты...

Это покажет каждое место в проекте, где есть ссылка на этот метод или свойство.

Я использую XCode версии 4.5, и я могу выбрать метод или свойство, щелкните правой кнопкой мыши и выберите Найти выбранный текст в рабочей области...

В вашем вопросе вы объединяете две разные вещи: поиск ссылок на переменную и поиск ссылок на свойство. Поиск ссылок на свойство можно выполнить через меню "Связанные файлы", как описано в моем ответе здесь: /questions/46238933/najti-ssyilki-na-metodyi-v-xcode/46238977#46238977

Поиск ссылок на переменную можно выполнить с помощью вкладки "Найти навигатор" навигатора. (Это вкладка со значком лупы в боковом меню слева.) Find -> References -> Matching и введите переменную, которую вы ищете. Тем не менее, я не вижу, что это особенно полезно, потому что:

  1. Он будет сопоставлять все вхождения переменной с этим именем, даже если они не связаны с конкретной переменной, которую вы ищете.
  2. Зачем вам это нужно? Обычно вы не должны использовать публичные переменные-члены (вместо этого используйте свойства), поэтому в 99% случаев все ссылки на интересующую вас переменную будут находиться в файле, в котором она объявлена. Мне просто достаточно было использовать cmd+f и выполнить простой текстовый поиск по этому файлу, и я никогда не чувствовал необходимости использовать более тяжелую технику. Если вы нажмете пару комментариев, делая это, кого это волнует?

Если вы действительно действительно нуждаетесь в запрашиваемой вами функциональности, а также в меню "Связанные файлы", Find -> Referencesили простой текстовый поиск не подойдет, тогда ваши единственные варианты - использовать какой-либо сторонний инструмент, такой как AppCode или (громоздкий, медленный) взлом "рефакторинга", предложенный Каримом.

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