1. Cambiar entre pantallas horizontales y verticales
[UIDevice currentDevice] El método de usar setValue:forKey: ya no está disponible en iOS16, y luego use la solicitud de función en UIWindowScene
if (@available(iOS 16.0, *)) {
UIWindowScene *windowScene = (UIWindowScene *)[[[UIApplication sharedApplication] connectedScenes] allObjects].firstObject;
UIWindowSceneGeometryPreferencesIOS *perference = [[UIWindowSceneGeometryPreferencesIOS alloc] init];
perference.interfaceOrientations = 1 << deviceOrientation;
[windowScene requestGeometryUpdateWithPreferences:perference errorHandler:^(NSError * _Nonnull error) {
NSLog(@"error--%@", error);
}];
} else {
[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:deviceOrientation] forKey:@"orientation"];
[UIViewController attemptRotationToDeviceOrientation];
}
复制代码
1.1 La notificación de rotación de pantalla no se puede activar en iOS16
Debe anular viewWillTransitionToSize:withTransitionCoordinator: de UIViewController y manejar la interfaz de usuario en esta función.
1.2, iOS16 no puede rotar la pantalla después de usar YYTextView
Después de usar UITextView, llame a la función requestGeometryUpdateWithPreferences:geometryPreferences errorHandler: la solicitud no es válida y la pantalla no se puede rotar
Análisis: imprime todas las escenas conectadas
Antes de usar YYTextView
Después de usar YYTextView
El problema es que hay una capa adicional de YYTextEffectWindow agregada por YYTextView en la UIWindowScene actual , simplemente elimine esta capa de la ventana.
2. Xcode14 UIViewController falla cuando dealloc
Error al depurar en iOS16
La aplicación eludió el inicio de la asignación del tiempo de ejecución de Objective-C para el objeto <%s>并崩溃
La razón es: IOS16 Apple no permite anular el método de inicialización + (vacío) en la categoría de control del sistema (Categroy)
3. Usando el paquete impreso por xcode14, el sistema debajo de iOS12.2 falla
Use la herramienta otool para ver el descubrimiento binario
二进制里面多了一个 /usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0)
解决方法:
Build Phases -> Link Binary With Librarires 里面添加libswiftCoreGraphics.tbd