1. Basculer entre les écrans horizontaux et verticaux
[UIDevice currentDevice] La méthode d'utilisation de setValue:forKey : n'est plus disponible sur iOS16, puis utilisez la demande de fonction dans 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 notification de rotation d'écran ne peut pas être déclenchée dans iOS16
Vous devez remplacer viewWillTransitionToSize:withTransitionCoordinator: de UIViewController et gérer l'interface utilisateur dans cette fonction.
1.2, iOS16 ne peut pas faire pivoter l'écran après avoir utilisé YYTextView
Après avoir utilisé UITextView, appelez la fonction requestGeometryUpdateWithPreferences:geometryPreferences errorHandler : la requête est invalide et l'écran ne peut pas être tourné
Analyse : imprimer toutes les scènes connectées
Avant d'utiliser YYTextView
Après avoir utilisé YYTextView
Le problème est qu'il y a une couche supplémentaire de YYTextEffectWindow ajoutée par YYTextView dans le UIWindowScene actuel , supprimez simplement cette couche de fenêtre.
2. Xcode14 UIViewController se bloque lorsque dealloc
Erreur lors du débogage dans iOS16
L'application a contourné l'initiation de dealloc d'exécution objective-c pour l'objet <%s>并崩溃
La raison est la suivante : IOS16 Apple n'autorise pas le remplacement de la méthode d'initialisation + (void) dans la catégorie de contrôle du système (Categroy)
3. En utilisant le package imprimé par xcode14, le système sous iOS12.2 se bloque
Utilisez l'outil otool pour afficher la découverte binaire
二进制里面多了一个 /usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0)
解决方法:
Build Phases -> Link Binary With Librarires 里面添加libswiftCoreGraphics.tbd