Всегда ли Xcode компилируется с нуля - PullRequest
1 голос
/ 16 июня 2011

Иногда я вижу, что внесенные мной изменения появляются при третьем или четвертом прогоне сборки. Это как если бы xcode «кэшировал» старую компиляцию.

Как удалить все скомпилированные файлы и начать с нуля

Одна вещь, которая особенно расстраивает это:

Я получил предупреждение о компиляции

для этого кода: [self.currentBusiness addCategoriesObject: self.currentCategory];

Я знаю, в чем проблема. Автоматически сгенерированный основной код данных не имеет - (void) addDistrictsObject: (District *) значение; - (void) addCategoriesObject: (Категория *) значение;

на Business.h. Хотя функция определена в Business.m.

Итак, я добавил эти 2 строки. Угадайте, что, все еще то же предупреждение. У меня была точно такая же проблема несколько раз без проблем. Я знаю решение. Я положил линию прямо там в бизнесе. Ничего не меняется.

Тем не менее, теперь я получаю то же самое предупреждение компилятора, даже если метод ЯВНО определен в business.h.

Как будто xcode не заботится о последнем внесенном мною изменении.

Я так расстроен. Я снова добавил #import "Business.h" в мой utilities.h. Ничего не должно меняться, учитывая, что «Business.h» уже включен через другой канал. Угадайте, что это работает.

Но тогда я подумал: ах, в этом проблема. Я с любопытством удалил этот // # import "Business.h" снова, чтобы он вернулся как обычно. Если это действительно проблема, то ошибка должна появиться снова, верно? Неправильно.

Ошибка ушла.

Таким образом, сделанные мной изменения не сразу показывают результаты. Либо компилятор, либо прекомпилятор должен использовать какой-то кэш.

Это важно. Есть ошибки, которые были введены за 2-3 сборки до этого, я не знаю, как отлаживать. Если код изменяется сразу после первой сборки после внесения этого изменения, я знаю, что что-то не так.

Кроме того, автоматическое восстановление не работает. Я создаю снимок, восстанавливаю снимок в другой каталог и получаю много ошибок компиляции.

Ответы [ 3 ]

4 голосов
/ 16 июня 2011

НЕТ, компилируется только тот файл, в котором происходил любой вид редактирования.

4 голосов
/ 16 июня 2011

XCode делает инкрементные сборки.Вы можете сделать чистую сборку, перейдя в пункт меню Product и выбрав Clean (или нажмите Shift+Cmd+K).Это удалит все промежуточные файлы и начнется с нуля.

2 голосов
/ 16 июня 2011

Нажмите xcode -> Empty Caches.

Вот скриншот.

xcode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...