información de bloqueo es el siguiente:
*** Terminación de aplicación debido a excepción no detectada
'NSInvalidUnarchiveOperationException',
razón: 'No se pudo clase instantiate llamado _UITextLayoutView porque no se encontró ninguna clase llamada _UITextLayoutView;
las necesidades de la clase que se definirán en código fuente o ligados en partir de una biblioteca (aseguran la clase es parte de la diana correcta)'
Una solución
xib vista parcial del interruptor para escritura a mano núcleo duro, a fin de evitar la fosa.
solución de dos
Descargar otras versiones de Xcode portal
soluciones tres
OC magia negro en tiempo de ejecución.
Crear un archivo UITextViewWorkaround
UITextViewWorkaround.h
import </ Fundación Foundation.h>
@interface UITextViewWorkaround: NSObject
+ (void) executeWorkaround;
@fin
UITextViewWorkaround.m
import "UITextViewWorkaround.h"
import <objc / runtime.h>
@implementation UITextViewWorkaround
+ (void) executeWorkaround {
si (@available (IOS 13.2, *)) {
}
else {
const char * className = "_UITextLayoutView";
Cls class = objc_getClass (className);
si (cls == nil) {
cls = objc_allocateClassPair ([clase UIView], className, 0);
objc_registerClassPair (CLS);
#if DEBUG
printf ( "añadido% s dinámicamente \ n", className);
#endif
}
}
}
@end
Utilice el método estático
import "UITextViewWorkaround.h"
- (BOOL) aplicación: (*) UIApplication didFinishLaunchingWithOptions de aplicación: (*) NSDictionary launchOptions {
// punto de anulación para la personalización después del lanzamiento de la aplicación.
[UITextViewWorkaround executeWorkaround];
volver sí;
}
Por favor, acepte rápida liberación objetivo:
importación UIKit
@objc
UITextViewWorkaround clase: NSObject {
estática func executeWorkaround () {
si #available (IOS 13.2, *) {
} else {
dejó className = "_UITextLayoutView"
dejar que theClass = objc_getClass (className)
si theClass == nil {
dejar que classPair: ¿Cualquier clase? = Objc_allocateClassPair (UIView.self, className, 0)
objc_registerClassPair (classPair!)
}
}
}
}