ios swift uitextview xcode11.2

ios - Después de actualizar Xcode 11.2 desde Xcode 11.1, la aplicación se bloquea debido a_UITextLayoutView



swift uitextview (5)

Después de actualizar Xcode 11.2 desde la aplicación Xcode 11.1 se bloquea:

*** La aplicación finalizó debido a la excepción no detectada ''NSInvalidUnarchiveOperationException'', razón: ''No se pudo crear una instancia de la clase llamada _UITextLayoutView porque no se encontró ninguna clase llamada _UITextLayoutView; la clase debe definirse en el código fuente o vincularse desde una biblioteca (asegúrese de que la clase sea parte del objetivo correcto) ''


Es un error desde Xcode 11.2-Beta

Solución

Regrese a la versión anterior de lanzamiento de Xcode desde:

https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_11.1/Xcode_11.1.xip

Tenga en cuenta que debe usar Safari para descargarlo y primero debe iniciar sesión en el portal de desarrolladores de Apple .

Puede encontrar todas las otras versiones de Xcode y otros enlaces de recursos (incluidas las versiones de lanzamiento y beta) aquí en https://developer.apple.com/download/more

La solución

Esto es muy difícil pero está trabajando para solucionarlo. Reemplace todos los UITextView s en storyboard sy Xib s con la versión de código puro .


Como solución "rápida", puede agregar UITextView directamente desde el código y no a través de IB. Al menos funcionó para mí. Aunque desde mi punto de vista, es mejor retroceder a Xcode anterior / esperar al nuevo.


Tiene algo que ver con UITextView agregado a través de Storyboard cuando se prueba en versiones anteriores a iOS 13. Supongo que es un error en Xcode 11.2 porque no hay problemas con versiones anteriores.


Una solución más rápida:

///Substitute class for _UITextLayoutView bug class FixedTextView: UITextView { required init?(coder: NSCoder) { if #available(iOS 13.2, *) { super.init(coder: coder) } else { let rect = CGRect(origin: .zero, size: CGSize(width: 100, height: 44*3)) super.init(frame: rect, textContainer: nil) } } }

Agregue este código en algún lugar y luego reemplace todas las instancias del guión gráfico en FixedTextView .

Nota: perderá cualquier atributo creado en los guiones gráficos. Esto podría tener serias implicaciones (por ejemplo, configuración de delegado, tamaño, etc.)


Xcode 11.1 descargado de https://developer.apple.com/download/more/ Cambiar de 11.2 a 11.1 solucionó el bloqueo.

Además, para mí, incluso con Xcode 11.2, cuando actualicé mi iPhone a 13.2, eso solucionó el bloqueo.