Почему Рефакторинг... скрыт (отключен) в Xcode?
Я хотел бы переименовать класс.
Почему Рефакторинг... скрыт (отключен) в Xcode?
Я хотел бы переименовать класс.
Выберите символ класса в его заголовочном файле - т.е. бит сразу после @interface
. Затем необходимо включить рефакторинг.
Если вы используете Objective-C ++ (т.е. mix Objective-C с кодом С++), то рефакторинг отключается в xcode, поскольку он не поддерживает рефакторинг кода С++.
Рефактор также может быть отключен, если не будут сохранены затронутые файлы (скорее всего, файл с вашим классом).
Я использую Xcode уже 5 лет, а рефакторинг никогда не работал корректно (даже если у xcode 4.6 есть основные ошибки, в которых он будет поврежден ваш исходный код!).
Обходной путь всегда был (все еще работает на 100%, даже в тех случаях, когда код Apple выходит из строя)
У меня есть 100% успеха с этим методом. Я просто попробовал рефакторинг с Apple "Refactor → Rename" в последнем xcode, и он не сработал - снова!
(на этот раз с неправильной ошибкой: "Невозможно определить язык", одно из тех сообщений об ошибках, в которых Apple помещает неправильный текст на место)
Я поеду в свой проект в finder, а затем измените имя файла получить информацию.
После этого в xcode → Навигаторе проектов я удаляю файлы.
В конце я нажимаю прямо на класс и Добавить файлы в... и снова добавляю эти файлы.
Это сработало для меня.
Для меня я понял, что Refactor отключен, потому что проект Xcode, который я открыл, ссылался на базовый SDK, который отсутствовал. Изменить настройки проекта и на вкладке "Сборка" установить базовый SDK на тот, который у вас есть (например, для меня это был iOS 4.2). Это позволило мне Refactor.
Перейдите в заголовочный файл вашего класса и найдите строку, которая выглядит примерно так:
@interface YourClassName
Щелкните правой кнопкой мыши на символе класса (например, YourClassName), и вы сможете выбрать Refactor → Rename...
Я просто попробовал это, и он работает в Xcode 5.
Кроме того, может случиться так, что вы переименовали имя файла для класса, либо вне xcode, либо нажав Ctrl-имя файла, а затем переименовав его. xcode отказывается от рефакторинга, если имя файла не совпадает с именем класса.
Была и эта проблема. Я пробовал искать недостающие SDK, сохранял файлы и искал код Objective-C ++, как упоминалось выше, и все, что потребовалось для исправления моей машины, - это перезагрузка XCode.
Кажется, что еще немного глючит.
Кстати, это было для XCode 4.0.1
Работы по рефакторингу Если вы сначала изменили имя файла в навигаторе проекта.