Подтвердить что ты не робот

Xcode продолжает строить раскадровку после каждого нажатия клавиши

Мой проект Xcode с использованием раскадровки, введенной в очень странном состоянии в последнее время: Xcode продолжает строить весь проект и, в частности, раскадровку после каждого нажатия клавиши. Я не нашел причин для такого поведения, ни в моем проекте не различало все интересные файлы (раскадровку и проект) ни настройку в Xcode (может быть, я просто не мог ее найти?) Излишне говорить, что эта "функция" делает работу над моим проектом практически невозможной так как процессор постоянно занимает перестройку раскадровки при вводе нового кода. Кто-нибудь видел это?

4b9b3361

Ответ 1

Это вызвано определениями IB_DESIGNABLE в исходных файлах заголовков. Вероятно, проблема возникает только в том случае, если заголовочный файл, содержащий IB_DESIGNABLE, включен (даже неявно) в исходный файл, который вы сейчас редактируете.

Я не нашел окончательного решения о том, как отключить IB_DESIGNABLE и, таким образом, постоянно скомпилировать раскадровку и исходные файлы. Я был бы признателен за флаг Xcode, чтобы временно отключить его. Я также попытался окружить макрос IB_DESIGNABLE макросами #ifdef, но они рассматриваются, даже если значение #ifdef равно false. Комментируя один за другим, IB_DESIGNABLE помогает, но это не выполнимое решение со многими IB_DESIGNABLE s.

Обновление

Наконец-то я нашел быстрый способ избежать этого раздражающего поведения. Открыв раскадровку в активном окне, отключите "Автоматическое обновление представлений" в меню "Редактор". Это перестанет обновлять представления в редакторе раскадровки, которые используют ваш собственный код и тем самым значительно ускорят вашу разработку. Когда вам понадобится снова компиляция "точно в срок", чтобы иметь визуальный предварительный просмотр вашего пользовательского кода, включите эту опцию снова (похоже, вам также нужно снова открыть раскадровку, чтобы она снова работала).

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

Возможно, вы захотите добавить привязку клавиш к команде, например command-option-control-A, чтобы легко переключать поведение вкл/выкл. Чтобы добавить привязку клавиш в Xcode, нажмите командную запятую для настроек, выберите вкладку "Связывание клавиш", используйте панель поиска, чтобы найти команду, затем дважды щелкните по правой области, чтобы добавить желаемое нажатие клавиши.

"Оставьте это" подход

Поверните "Автоматически обновлять представления" и не включите его.

Сделайте удобное нажатие клавиши "Обновить все представления" , скажем, command-option-shift-R

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

Во время работы просто время от времени прикасайтесь к команде-option-shift-R или по мере необходимости. Обычно вам нужно только прикоснуться к команде-option-shift-R, когда вы работаете на раскадровке.

Ответ 2

У меня была эта проблема, и принятый ответ не сработал у меня.

Проблема была в том, что я всегда держу раскадровку открытой в своей собственной вкладке в XCode, чтобы я мог быстро ее получить.

Единственный способ исправить это - либо закрыть эту вкладку, либо выбрать другой файл (например, обычный файл кода), а затем закрыть и снова открыть XCode. После этого он больше не перестраивал каждое нажатие клавиши.

Однако, если вам нужно открыть раскадровку, чтобы внести изменения, эта проблема может появиться снова, и мне придется повторить описанный выше процесс.

Не могу дождаться, пока Apple исправит это, так как это очень расстраивает!

(ノ ಠ 益 ಠ) ノ 彡 ┻━┻