Подтвердить что ты не робот

Почему 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>

Почему это и, что еще важнее: как я могу это остановить?

4b9b3361

Ответ 1

(этот ответ основан на личном опыте и не является формальным)

В разделе classes в файле .storyboard xml перечислены все контроллеры представлений, которые у вас есть в вашем проекте, чтобы

  • Разрешить редактору-помощнику показывать правильный исходный файл при выборе элемента интерфейса в построителе интерфейса и
  • Разрешить инспектору идентификации (правая панель) представить параметры для пользовательского класса.

Я предполагаю, что этот раздел является кешем, и он вышел на пенсию, если оба из перечисленных выше видов использования не использовались какое-то время.

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

Ответ 2

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

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