Есть ли способ рефакторинга swift в Xcode 7.1? Когда я пытаюсь переименовать переменную (например, выделить, щелкнуть правой кнопкой мыши, рефакторинг → переименовать), Xcode откроет диалоговое окно с сообщением "Невозможно реорганизовать Swift-код. Xcode может использовать только рефакторинг C и Objective-C". Есть ли обходной путь для этого?
Как сделать рефакторинг быстрым в Xcode?
Ответ 1
AFAIK рефакторинг не работает с Swift прямо сейчас, однако, по крайней мере, в том же файле (область), вы можете сделать следующее:
Ответ 2
Xcode 9
Xcode 9 теперь поддерживает рефакторинг в Swift. Об этом было объявлено в WWDC 2017.
Ответ 3
Отсутствие рефакторинга поразительно (особенно, поскольку я схожу с серьезного ограничения, используя VS). Однако я только что заметил, что кто-то что-то сделал с этим. На GitHub есть плагин Refactorator Xcode Plugin (лицензия MIT), который утверждает:
Refactorator - это плагин Xcode для рефакторинга Swift и теперь Objective-C код. Он переименует общедоступные или внутренние вары, функции, перечисления и т.д. Для частных и локальных объектов используйте Xcode existing "Edit All in Scope".
Полное раскрытие информации заключается в том, что я не имею к этому никакого отношения, и я собираюсь сам установить продукт.
Ответ 4
Начиная с Xcode 7.2 beta инструменты рефакторинга не поддерживают Swift.
Я использую средство проверки типов. Измените имя/тип что-то, а затем исправьте все компиляции. Из-за сильной типизации у вас может быть больше уверенности в том, что этот подход поймает все. Я порой преднамеренно менял вещи и временно разбивал их, чтобы проверить, где используются или доступны объекты или типы.
Или используйте AppCode для рефакторинга, я слышал, что это хорошо, но я не очень пробовал себя.