Xcode може використовувати лише рефактор C і Objective-C. Як перейменувати ім'я швидкого класу в Xcode 6?


103

Я створив новий проект єдиного перегляду в бета-версії Xcode 6. Я хочу перейменувати швидкий клас з ViewController.swiftу якесь інше ім'я. Але коли я вибираю Рефактор -> Перейменувати, він видає помилку Xcode can only refactor C and Objective-C code.

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

Будь-яка ідея, як перейменувати швидкий клас у Xcode 6?

ОНОВЛЕННЯ:

Нарешті, Xcode 9 підтримує рефакторинг для Swift. Щоб досягти цієї основної функції, Apple знадобилося 3 роки. Рефакторинг


9
Наразі його немає. Подайте помилку .
jtbandes

19
Через рік після того, як про це попросили, єдиною відповіддю все ще є пошук і заміна вручну! Неймовірно, що це відстало від Apple, це основна і найважливіша особливість для IDE
HughHughTeotl

1
AppCode може виконати цей рефакторинг. Це буде двоетапний процес для вашого класу, визначеного у .swiftфайлі. 1. Виберіть ім'я класу та виконайте Рефактор> Перейменувати . 2. Виберіть .swiftфайл та виконайте Рефактор> Перейменувати .
Даніель Чжан

5
Навіть через два роки !!! НЕ ВПРОВАДЖЕНИЙ???
Мілад Фарідня

Насправді це приємно, але повертає спогади про давні часи, копіюючи та вставляючи 100 предметів у C
LegendLength

Відповіді:


25

Ви можете змінити назву класу в File Inspector у правій частині Xcode6.

  • відкрити свій клас
  • перейдіть до Інспектора файлів> Визначте та наберіть розділ
  • перейменувати існуючий клас у поле "ім'я".

Це все! Раніше я вручну перейменував ім'я класу у файлі класу.


11
Дякуємо за відповідь, але вона змінює лише ім'я класу лише у структурі файлів. Мені все ще доводиться змінювати всі екземпляри назви мого класу скрізь у коді. Тоді як використання Refactor-> Rename ... використовується для зміни імені в структурі файлів, а також у коді.
Хавар

Нема проблем! Я просто думав, що це своєрідне рішення, поки Apple не зробить щось із цим питанням. Ви також можете використовувати функцію "Знайти та замінити" до цього дня. Будь-який випадок, вбудований у Refactor-> Rename, майже виконує ті самі дії.
Newone

1
@Newone Це не робить те ж саме. Наприклад, Знайти та замінити буде шукати всередині рядків, і Refactor-> Перейменувати це не повинно.
Мартін Епш

15

Я використовував пошук> Знайти та замінити в проекті , він не ідеальний, але він працює.


12

Я використовую такий спосіб:

  • Можна розташувати курсор на змінній, яку потрібно перейменувати
  • Виберіть Редактор - Редагувати всі в області застосування (^ ⌘E)
  • Перейменуйте змінну і автоматично всі зміни змін відбудуться редагуванням

Це допомагає. Я вражений, що я так довго сумував !! :]
hdsenevi

1
Це працює лише в межах області, тобто не в файлах IIRC.
Стів Мозер

10

З цього підручника.

Розділіть свій ii8 код Swift

Спочатку спочатку давайте перейменовано наш Контролер перегляду на щось більш значуще. Відкрийте файл ViewController.swift і замініть всі посилання на "ViewController" на наше нове ім'я, "SearchResultsViewController". Перейменуйте файл також на SearchResultsViewController.swift.

Якщо ви спробуєте запустити додаток звідси, ви отримаєте збій. Це тому, що наш файл розкадровки не оновлено, щоб знати про новий клас! Отже, відкрийте дошку Main.storyboard, виберіть на сцені об’єкт "Переглянути контролер" (лівий навіс), а потім виберіть інспектора ідентичності (справа, третя кнопка.)

Звідси давайте змінимо клас з "ViewController" на "SearchResultsViewController". Тепер нам слід повернутись на слід. Перевірте, чи проект все ще працює, і давайте продовжимо.


дякую за відповідь Я вже експериментував з цим методом. Але це, здається, не є гарним способом. Якщо я використовую об'єкти ViewController.swift в 10 класах, я повинен вручну перейменувати їх у всіх класах. Стільки болючих і
марних

@ Khawar- Так, ти маєш рацію ,, але, можливо, зараз немає іншого варіанту, а також швидкий в бета-версії. не хвилюйтеся з цього приводу. Сподіваємось, яблуко знайде ще один простіший спосіб (мета c ???) :)
iPatel

1
Я на версії 7.2 (7C68), і перейменування рефакторингу все ще неможливо
Barbara R

У 7.3 його також неможливо.
ManiaChamp


2

Xcode 9

Xcode 9 тепер підтримує перейменування в Swift. Про це повідомили у WWDC 2017.

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


Дякую, дякую Apple, але перейменування все ще не працює. Тепер це збій Xcode.
кисілено

Правда ... Станом на бета версії 9.0 перейменування робить збій Xcode. Але це те, що має працювати в майбутньому , коли це може бути :)
Гай Дахер,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.