Xcode підтримує побудову розкадровки після кожного натискання клавіші


145

Мій проект Xcode, що використовує дошку розкадрувань, нещодавно увійшов у дуже дивний стан: Xcode продовжує будувати весь проект, а особливо розкладочку після кожного натискання клавіші . Я не знайшов причин для такої поведінки, ні в моєму проекті, що розрізняв усі цікаві файли (табло та проект), ні налаштування в Xcode (можливо, я просто не міг його знайти?) Зайве говорити, що ця "функція" робить роботу над моїм проектом майже неможливою оскільки процесор постійно займається перебудовою розгортки при введенні нового коду. Хтось це бачив?

Відповіді:


415

Це викликано IB_DESIGNABLEвизначеннями у вихідних файлах заголовків. Можливо, це створює проблеми лише в тому випадку, якщо файл заголовка, який міститься IB_DESIGNABLE(навіть неявно), у вихідний файл, який ви зараз редагуєте.

Я не знайшов остаточного рішення, як відключити IB_DESIGNABLEі, таким чином, постійно збирати табло та вихідні файли. Буду вдячний прапор Xcode, щоб тимчасово відключити це. Я спробував також навколишні IB_DESIGNABLEз #ifdefмакросами , але вони вважаються навіть якщо #ifdefвідповідає значенню БРЕХНЯ. Коментуючи одну за одною IB_DESIGNABLEдопомогу, але це не є можливим рішенням для багатьох IB_DESIGNABLEс.

Оновлення

Нарешті я знайшов швидкий спосіб уникнути цієї дратівливої ​​поведінки. Відкривши рекламну дошку в активному вікні, відключіть "Автоматично оновити перегляди" в меню "Редактор". Це перестане оновлювати представлення даних у редакторі розкадровки, які використовують ваш власний код, і таким чином значно прискорить вашу розробку. Коли вам потрібно буде знову-таки вчасно скласти, щоб мати візуальний попередній перегляд вашого власного коду, увімкніть цю опцію ще раз (здається, вам також доведеться знову відкрити свою дошку розкадрування, щоб вона знову працювала).

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

Ви можете додати ключову прив'язку до команди, наприклад команду-параметр-контроль-A, щоб легко вмикати та вимикати поведінку. Щоб додати прив'язку клавіш до Xcode, торкніться значка команда-кома для налаштувань, виберіть вкладку Прив’язки клавіш, використовуйте панель пошуку, щоб знайти команду, а потім двічі клацніть праворуч, щоб додати потрібний набір клавіш.

Підхід "Залиште це"

По черзі вимикайте "Автоматично оновлювати перегляди" і ніколи не вмикайте його .

Зробіть зручний натискання клавіші для "Оновити всі перегляди" , скажімо команда-параметр-shift-R

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

Під час роботи просто торкніться команд-опцій-shift-R час від часу або за потреби. Взагалі потрібно лише торкатися команд-параметрів-shift-R, коли ви працюєте на дошці розкадрування.


10
Не впевнений, як він увімкнувся, але вимкнення "Автоматично оновити перегляди" вирішило мою проблему
MandisaW

1
Xcode 7.3 постійно будує проект, коли у активного редактора відкрито табло. На щастя, ця відповідь вирішила мою проблему. Apple продовжує мене вражати ...
Олексій Таран

24
Проблема Xcode версії 8.2.1 (8C1002) вирішена. Коли я знайшов цю відповідь, і це вирішило мою проблему, я не міг зупинити сліз. Я провів 2 дні в кошмарі, видаляючи отримані дані, очищаючи проект, перевстановлюючи всі стручки. (Я думаю, що пора яблука, дайте всі розробки IDE Jetbrains. Яке яблуко це просто лайно! Дякую!
korgx9

2
Велике спасибі, xcode продовжує будувати справді змушує мене засмучуватися.
Чауян

8
Це рішення працює і на Xcode 9. Поворот "Автоматично оновлювати перегляди" на Дошці розкадрувань, і більше немає постійного відновлення. Дуже дякую!
PL

7

У мене була ця проблема, і прийнята відповідь не працювала для мене.

Проблема, яку я мав, полягала в тому, що я завжди тримаю відкриту дошку на власній вкладці в XCode, щоб швидко отримати доступ до неї.

Єдиний спосіб я міг це виправити - закрити цю вкладку або вибрати інший файл (наприклад, звичайний файл коду), а потім закрити та повторно відкрити XCode. Після цього вона більше не відбудовувалася на кожному натисканні клавіш.

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

Не можу чекати, поки Apple це виправить, бо це дуже засмучує!

(ノ ಠ 益 ಠ) ノ 彡 ┻━┻

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.