Existe-t-il un moyen de désactiver (temporairement) les messages d'erreur/d'avertissement de mise en page automatique:
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x170098420 H:[UIView:0x15c62c100(2)]>",
"<NSLayoutConstraint:0x170098600 UIView:0x15c6294f0.leading == UIView:0x15c628d40.leadingMargin - 8>",
"<NSLayoutConstraint:0x170098650 H:[UIView:0x15c6294f0]-(0)-[UIView:0x15c62b750]>",
"<NSLayoutConstraint:0x1700986a0 UIView:0x15c62b750.width == UIView:0x15c6294f0.width>",
"<NSLayoutConstraint:0x1700986f0 UIView:0x15c628d40.trailingMargin == UIView:0x15c62b750.trailing - 8>",
"<NSLayoutConstraint:0x170098880 H:[UIView:0x15c6294f0]-(0)-[UIView:0x15c62c100]>",
"<NSLayoutConstraint:0x1700988d0 UIView:0x15c628d40.centerX == UIView:0x15c62c100.centerX + 1>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x170098420 H:[UIView:0x15c62c100(2)]>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
A décompilé et il y a en fait un moyen:
pour Swift 3
UserDefaults.standard.setValue(false, forKey: "_UIConstraintBasedLayoutLogUnsatisfiable")
Objectif c
[[NSUserDefaults standardUserDefaults] setValue:@(NO) forKey:@"_UIConstraintBasedLayoutLogUnsatisfiable"];
Maintenant, vous ne serez informé que "_UIConstraintBasedLayoutLogUnsatisfiable est désactivé".
Rappel obligatoire pour tous ceux qui lisent ceci: ceci devrait être le dernier recours, pour des conseils sur le débogage et la résolution des problèmes de contraintes, voir les sessions "Mystères de la mise en page automatique" de la WWDC: partie 1 et partie 2 .
Solution Swift 3.0:
//Hide Autolayout Warning
UserDefaults.standard.setValue(false, forKey:"_UIConstraintBasedLayoutLogUnsatisfiable")
pour tous ceux qui se demandent comment faire ce macOS/osx avec AppKit/Cocoa
UserDefaults.standard.set(false, forKey: "NSConstraintBasedLayoutLogUnsatisfiable")
UserDefaults.standard.set(false, forKey: "__NSConstraintBasedLayoutLogUnsatisfiable")
J'ai essayé de résoudre ce problème en utilisant lldb et j'ai trouvé une solution:
Si votre application rencontre un problème de mise en page, l'exécution est suspendue. Avec l'instruction "thread return", la fonction UIViewAlertForUnsatisfiableConstraints qui imprime l'erreur est forcée de revenir avant que le message d'avertissement ne soit imprimé dans la console.
Avec la commande "c", l'exécution de votre application se poursuit (Remarque: "Continuer automatiquement après l'évaluation des actions" ne fonctionne pas dans ce cas)
Cependant, avec ces actions automatiques, le point d'arrêt est susceptible de se comporter étrangement s'il est touché deux fois de suite, ce qui entraînera le blocage de votre application. Pour résoudre ce problème, vous pouvez supprimer les actions de point d'arrêt et entrer les commandes manuellement lorsque le débogueur suspend l'exécution du programme.