Xcode 4.5 Автоматическое изменение файлов .xib

Так как я обновился до Xcode 4.5, я обнаружил, что он автоматически удаляет раздел каждого xib файла, который я посещаю. Вот раздел:

<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
        <real value="1536" key="NS.object.0"/>
</object>

Я могу почти жить с этим, но когда я снова заходим в файл, я нахожу, что есть еще более "автоматические" изменения. Они более разнообразны и сложнее охарактеризовать, поэтому я не буду включать примеры, если мне это действительно нужно.

Я не понимаю, что здесь происходит. Я ищу один из двух ответов:

  • Есть ли способ отключить это?
  • Почему это происходит, и есть ли способ заставить Xcode применять эти изменения ко всем xib файлам, чтобы я мог сделать это?

Я бы чувствовал себя намного лучше, если бы понял, что происходит, и почему.

Ответ 1

Из того, что я видел, Xcode автоматически переформатирует nibs, добавив/удалив из файлов .xib по мере необходимости. Ничто не кажется функционально другим для моих целей, когда я это имел.

Просто для SEO, я расскажу об этом, так как это очень важно при отслеживании изменений в управлении версиями, таких как Git. Каждый раз, когда я открываю старые .xib файлы в Xcode (я использую 5.0), они автоматически меняются и отображаются в моем средстве проверки клиента Git.

ПОПРОБУЙТЕ ЭТО:

* (Если вы не используете Git или некоторый контроль версий, настройте репо для проекта, чтобы проверить это.)

  • Посмотрите, есть ли оставшиеся немодифицированные .xib, которые вы можете открыть, не изменяя их.

  • Выберите/просмотрите, но ничего не меняйте.

  • Теперь выберите/просмотрите другой файл в навигаторе проекта. Если рядом с .xib отображается "M", перестройте проект и убедитесь, что он одинаковый.

Если вы хотите проигнорировать их, для целей контроля версий просто убедитесь, что не выполняете/не выполняете их, если вы не намеренно вносите им какие-либо изменения.

Если вы хотите "отменить" автоматически измененный файл (ы):

  • Щелкните правой кнопкой мыши файл в навигаторе проекта.
  • Перейдите в раздел "Контроль источника" → > "Отменить изменения..."

ИЛИ, отбросьте их через Git или ваш инструмент управления версиями по выбору.

Ответ 2

есть способ отключить это, но он не лишен собственных проблем (см. ниже). Вы можете показать xib файл в Finder, Get Info в файле, а затем в разделе General, выберите Locked.

Проблема 1: Если вы используете элемент управления источником, как и большинство людей, вы не сможете проверить предыдущую фиксацию или reset свою ветку на более раннюю фиксацию, пока вы не разблокируете все файлы, которые будут изменены операцией.

Проблема 2: Теперь, каждый раз, когда вы просматриваете файл в IB, всплывающее окно сместится вниз с вершины окна xCode, где заголовок / "MBPreDeliveryComplete.xib" заблокирован для редактирования, и вы не сможете сохранить свои изменения. Вы хотите разблокировать его?

И это сообщение:
"MBPreDeliveryComplete.xib" в настоящее время заблокирован, поскольку он помечен как "Заблокирован в Finder".

С кнопками, позволяющими разблокировать или не разблокировать файл. Конечно, вы можете не разблокировать файл, если только вы на самом деле не собираетесь вносить изменения.