¿Por qué git agrega y elimina la sección Storyboard <classes> repetidamente?

Al save el guión gráfico y realizar los cambios en git, es muy probable que toda la sección <classes> se elimine o agregue al control de código fuente (git). Estoy usando git en la command-line, no en la interfaz de usuario integrada de XCode.

Primero se ve así:

 + <classes> + <class className="CPTGraphHostingView" superclassName="UIView"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/CPTGraphHostingView.h"/> + </class> ... + </classes> 

Y en la siguiente confirmación se ve así:

 - <classes> - <class className="CPTGraphHostingView" superclassName="UIView"> - <source key="sourceIdentifier" type="project" relativePath="./Classes/CPTGraphHostingView.h"/> - </class> ... - </classes> 

¿Por qué es eso y, más importante aún, cómo puedo evitarlo?

(Esta respuesta se basa en la experiencia personal, y no es formal)

La sección de classes en el file .storyboard xml enumera todos los controlleres de vista que tiene en su proyecto para

  1. Permita que el Editor Asistente muestre el file fuente correcto cuando select un elemento UI en el Creador de Interfaces, y
  2. Permita que el inspector de identidad (panel derecho) presente opciones para la class personalizada.

Supongo que esta sección es un caching, que se retiró cuando los dos usos enumerados anteriormente no se han utilizado por un time.

El hecho de que esta sección apareció en primer lugar implica que es seguro ignorarlo, ya que se genera automáticamente cuando es necesario. Si ya lo tiene comprometido y posteriormente aparece como eliminado en diff, abra el Inspector de identidad, deployment la list de classs disponibles en Clase personalizada y vea cómo existe toda la sección una vez más.

En mi experiencia, la eliminación solo ocurre si abre el guión gráfico y tiene errores relacionados con la existencia de classs. Un ejemplo de esto es abrir el guión gráfico mientras que un conflicto de fusión aún no se ha resuelto. Una o más classs pueden no ser analizables. En este caso, el generador de interfaz parece estar eliminando toda la sección y no solo la class infractora.

Para mí, se soluciona fácilmente abriendo el guión gráfico nuevamente después de que el parche esté listo en caso de que vea la eliminación. Si se resuelven todos los problemas, la sección se regenera. Si no es así, significa que tengo un problema con la configuration del proyecto y no debería comprometerme de ninguna manera.