2012-01-19 2 views

ответ

12

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

Концепция «чистой» находится в большинстве IDE. Вы используете его, когда что-то ведет себя странно, или в некоторых известных случаях, когда требуется «чистая» перестройка.

9

Очень важное использование для «Чистоты» - это когда у вас есть изображения в приложении и вы обновляете их содержимое, не изменяя их имени. Например, скажем, у вас есть изображение с именем Background.png, которое вы использовали некоторое время, затем вы отредактировали этот снимок в Photoshop и сохранили новое одноименное имя. При следующем запуске приложения изображение не будет обновлено; компилятор будет продолжать показывать старый. Чтобы убедиться в обновленном изображении, вам нужно выполнить «Очистить» перед запуском. Таким образом, в принципе, во всех обновлениях изображений, где имя не изменилось, вам необходимо «Очистить».

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

+0

Я считаю, что Xcode 4+ обновляет изображения, когда обнаруживает изменения на них. – EmilioPelaez

+1

Я использую Xcode 4.0 Build 4A304a, и он не обновляет изображения без опции «Очистить». – antf

+0

Конечно, «идеальная» IDE заметила бы, что последняя дата изменения изображения была другой, или есть другая схема для обнаружения изменения. Иногда кажется, что надежность таких вещей варьируется от проекта к проекту даже в пределах одной IDE. –