Перейменуйте або рефакторируйте файли в Xcode


Відповіді:


170

Найбезпечніший спосіб перейменування файлів - це рефакторинг назви класу за допомогою команди Xfa "Refactor" . Використовуючи цю команду, ви гарантуєте, що ваш код також оновлюється де завгодно, де посилається на файл або клас (включаючи NIB).

Клацніть правою кнопкою миші на назві класу у .hфайлі інтерфейсу ( ), оберіть Refactor->Rename, і Xcode проведе вас через процес, що дозволить вам переглянути попередні зміни, перш ніж виконувати їх.

Детальніше:

Клацніть правою кнопкою миші на назві класу (після @interface) і виберіть Refactor-> Rename. Наприклад, клацніть правою кнопкою миші ViewControllerв цьому коді:

@interface ViewController : UIViewController

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

Введіть нову назву класу:

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

Xcode дозволить вам переглянути зміни, перш ніж фіксувати.

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

Ви також можете виділити назву класу та скористатися Edit->Refactorменю Xcode , або навіть прив'язати його до комбінації клавіш, якщо хочете.

Якщо ви дійсно хочете перейменувати файл, не впливаючи на будь-який код, клацніть на імені в області навігатора (ліва область), зачекайте секунду, а потім натисніть ще раз. Ім'я буде виділено, і ви можете ввести нове. Ви також можете видалити з Навігатора, перейменувати файл у Finder і повторно додати його до свого проекту.


1
Цей підхід є найкращим, оскільки він перейменовує екземпляри класів, що містяться в інших файлах або файлах XIB.
Kendall Helmstetter Gelner

Здається, це не працює, оскільки я перейшов на 4.3. У файлі заголовка (.h) XCode скаржиться, що файл не додано до цільової - такої, якою він не повинен бути, оскільки це заголовочний файл. Якщо ви спробуєте застосувати файл .m, він скаржиться, що це не символ (клас, функція тощо)
Майкл

@Michael Ви пробували це на тестовому проекті? Я не встановив 4.3, але, здається, працює нормально на 4.2 (просто спробував).
неван-король

Хтось знає, де я можу знайти відповідний вихідний код, якщо це відкритий код? Я думаю, що вони використовували інструмент clang для реалізації функції рефакторингу, є кілька хороших інтерфейсів для такого функціоналу, але я не знайшов вихідний код.
BergP

На жаль, це призводить до збою мого Xcode. Я запускаю Йосеміті бета, тому це може бути причиною. Сподіваюся.
CGTheLegend

51

Працює для Xcode 4.2.1: виберіть файл у навігаторі проекту (ліва панель за замовчуванням) і натисніть [вкладку]


Дякую. Refactor-> Rename не працював з файлами C ++. Це спрацювало.
BlueVoid

4
Я думаю, що ця відповідь заслуговує на прийняття, аніж поточна. +1
Морган Уайльд,

Також працює з XCode 11
Кеша Антонов

3

За замовчуванням Xcode буде перейменовувати файл, коли ви перейменовуєте його в навігаторі файлів (лівий контур подання thingy) або коли ви використовуєте інспектор.


Привіт, я хотів би перейменувати протокол (SideToolBarDelegate.h) на ToolBarDelegate.h, але xcode каже мені: "SideToolBarDelegate.h імпортується або включається файлом Objective-C ++, а не Objective-C або C:" . Як я можу перейменувати його, будь ласка? Дякую
Самір

він просто замінює його в одному файлі (SideToolBarDelegate.h), але я хочу замінити це ім'я у всьому проекті, як функція рефакторингу.
Самір

shift-cmd-F, відкрийте маленькі варіанти, щоб "знайти та замінити". Знайти і замінити ...
bbum

Не забувайте перейменовувати речі зі спорідненими іменами: Body, BodiesViewController, interactingBodies - Суворе «знайти та замінити» не зачепить 2-го чи 3-го.
willc2

2

В один бік : виберіть файл, який потрібно перейменувати, а потім натисніть Tab. Я в основному використовую це, однак Xcode іноді не вдається перейменувати його. Отже, що б я тоді

Інший спосіб : виберіть файл. Відкрийте зону для інспекторів (у верхньому правому куті). А потім відкрийте File Inspector . Там ви знайдете поле імені, де ви зможете відредагувати ім'я файлу. (Див. Знімок екрана).

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


1

Xcode 11.6, спроба перейменувати "foo.cpp" у "bar.cpp" не працює за допомогою вищезазначених методів. параметр РЕФАКТОР сірий. Натомість виконайте наступне:

  • У браузері проектів знайдіть файл для перейменування, тобто: foo.cpp
  • Клацніть правою кнопкою (2 пальця) на foo.cpp
  • Виберіть "Показати в інспекторі файлів"

Праворуч на екрані з'являється інспектор файлів.

  • У полі Ім'я введіть нове ім'я файлу та натисніть ENTER

0

Якщо ви перейменували файл вручну та використали функцію «Знайти та замінити» для перейменування імені класу, переконайтеся, що файл додано до джерел компіляції у фазах побудови цілі, оскільки його, ймовірно, буде видалено.


0

Виберіть Рефактор-> Перейменувати відповідь nevan king також добре працює на бета-версії Xcode версії 7.0 (7A120f)


Це не дає відповіді на запитання. Щоб критикувати або вимагати роз’яснень від автора, залиште коментар під його публікацією - ви завжди можете коментувати власні публікації, і коли у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію .
Mayank Jain,

Тому що я не маю 50 репутації. Ось що я публікую відповідь на відповідь.
Карлос Чанг,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.