Это вызвано IB_DESIGNABLE
определениями в исходных заголовочных файлах. Вероятно, это создает проблему только в том случае, если заголовочный файл, содержащийся IB_DESIGNABLE
(даже неявно), включен в исходный файл, который вы в данный момент редактируете.
Я не нашел окончательного решения, как отключить IB_DESIGNABLE
и, таким образом, постоянно компилировать раскадровку и исходные файлы. Я был бы признателен за Xcode флаг, чтобы временно отключить это. Я попытался также окружающие IB_DESIGNABLE
с #ifdef
макросами , но они считаются даже если #ifdef
соответствует значению ЛОЖЬ. Комментируя один за другим IB_DESIGNABLE
помощь, но это не выполнимое решение со многими IB_DESIGNABLE
s.
Обновить
Я наконец нашел быстрый способ избежать этого раздражающего поведения. Открыв раскадровку в активном окне, отключите «Автоматически обновлять представления» в меню «Редактор». Это прекратит обновление представлений в редакторе раскадровки, которые используют ваш пользовательский код, и, таким образом, значительно ускорит вашу разработку. Когда вам снова понадобится своевременная компиляция, чтобы иметь визуальный предварительный просмотр вашего пользовательского кода, включите эту опцию снова (кажется, что вам также нужно заново открыть раскадровку, чтобы она снова заработала).
Возможно, вы захотите добавить привязку ключа к команде, например command-option-control-A, чтобы легко включить / выключить поведение. Чтобы добавить привязку клавиш в XCode, коснитесь команды запятой для предпочтений, выберите вкладку «Привязки клавиш», используйте панель поиска, чтобы найти команду, затем дважды щелкните правой кнопкой мыши, чтобы добавить желаемое нажатие клавиши.
Подход "Оставь это"
Поочередно отключите «Автоматически обновлять представления» и никогда не включайте его .
Сделайте удобное нажатие клавиши для «Обновить все представления» , скажем, command-option-shift-R
Во время работы просто время от времени нажимайте command-option-shift-R или по мере необходимости. Как правило, необходимо только прикоснуться к command-option-shift-R во время работы над раскадровкой.