Почему git добавить и удалить раздел раскладушки <classes> несколько раз?
При сохранении раскадровки и внесении изменений в git, вероятность того, что весь раздел <classes>
будет удален или добавлен в исходное управление (git). Я использую git в командной строке, а не в интегрированном пользовательском интерфейсе XCode.
Сначала это выглядит так:
+ <classes>
+ <class className="CPTGraphHostingView" superclassName="UIView">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/CPTGraphHostingView.h"/>
+ </class>
...
+ </classes>
И в следующем коммите это выглядит так:
- <classes>
- <class className="CPTGraphHostingView" superclassName="UIView">
- <source key="sourceIdentifier" type="project" relativePath="./Classes/CPTGraphHostingView.h"/>
- </class>
...
- </classes>
Почему это и, что еще важнее: как я могу это остановить?
Ответы
Ответ 1
(этот ответ основан на личном опыте и не является формальным)
В разделе classes
в файле .storyboard
xml перечислены все контроллеры представлений, которые у вас есть в вашем проекте, чтобы
- Разрешить редактору-помощнику показывать правильный исходный файл при выборе элемента интерфейса в построителе интерфейса и
- Разрешить инспектору идентификации (правая панель) представить параметры для пользовательского класса.
Я предполагаю, что этот раздел является кешем, и он вышел на пенсию, если оба из перечисленных выше видов использования не использовались какое-то время.
Тот факт, что этот раздел появился в первую очередь, подразумевает, что его можно игнорировать, поскольку он автоматически генерируется при необходимости. Если у вас уже есть это, и впоследствии он отображается как удаленный на diff, откройте "Identity Inspector", выпадающий список классов, доступных в пользовательском классе, и посмотрите, как весь раздел существует еще раз.
Ответ 2
По моему опыту удаление происходит только в том случае, если вы открываете раскадровку и имеете связанные с классом ошибки. Примером этого является открытие раскадровки, в то время как конфликт слияния еще не разрешен. Один или несколько классов могут быть несовместимыми. В этом случае построитель интерфейсов, похоже, удаляет весь раздел, а не только класс-нарушитель.
Для меня это легко установить, открыв раскадровку снова после того, как патч готов в случае, если я увижу удаление. Если все проблемы решены, раздел регенерируется. Если это не так, это означает, что у меня проблема с настройками проекта, и я не должен в любом случае совершать какие-либо действия.