Cet avertissement se produit dans Xcode 6.1. Quelqu'un a-t-il une idée de ce que signifie cet avertissement et que va-t-il se passer? Merci beaucoup!
Ci-dessous, une capture d'écran avec les avertissements ouverts dans le code source "
Comment trouver quelle contrainte provoque l'avertissement? Xcode ne vous dit pas quelle contrainte est le problème.
ios
xcode
cocoa-touch
storyboard
xcode6
Zhihao Yang
la source
la source
Réponses:
Cet avertissement peut être ennuyeux et se produit à partir de Xcode 6.1.1. Le problème principal est que vous ne pouvez pas trouver facilement la contrainte référencée en cliquant sur l'avertissement. Je suppose que c'est un bogue qui sera corrigé tôt ou tard.
Cependant, en attendant, vous pouvez utiliser cette petite solution de contournement:
Étape 1: Détectez les avertissements ennuyeux 😱
Étape 2: clic droit / Ctrl-clic sur l'avertissement, sélectionnez
Reveal in Log
😨Étape 3: Admirez la beauté de l'extrait de journal suivant:
Hmmm ... Qu'est-ce que c'est ...?
Étape 4: Jetons cela dans la barre de recherche du projet ... 😐
😮 Oui, vous avez bien deviné. Cliquez dessus.
Étape 5: 😁 OMG! Profitez de quelques minutes supplémentaires de productivité jusqu'à ce qu'Apple corrige ce bug ennuyeux. 😎
Pour 2016 ...
Notez que pour Xcode de 5/2016, vous devez malheureusement quitter et redémarrer Xcode pour effacer cet avertissement dans certains cas.
Notez que de manière déroutante, la même erreur peut être causée par un problème sans rapport (cela semble être un bogue Apple ou une mauvaise utilisation du langage d'erreur): si vous avez des
IBInspectable
éléments, et que vous les renommez dans vos fichiers Swift. Xcode ne supprime pas l'ancien nom UserDefinedRuntimeAttributes pour vous. Cliquez simplement sur "Inspecteur d'identité" (élément 3 sur le panneau de droite) et supprimez les éléments ratés.Pour 2017 ...
la source
Ce message est déclenché lorsque vous avez désactivé une vue dans votre storyboard, mais que vous n'avez pas désactivé les contraintes basées sur cette vue.
Par exemple, vous avez désactivé un bouton, mais vous avez toujours des contraintes liées à ce bouton. Cela peut être une contrainte intrinsèque comme la hauteur ou la largeur, ou une contrainte relative comme la distance d'une autre vue.
Vous devez désactiver chacune des contraintes référençant la vue, et vous devez le faire manuellement. Xcode est surconservateur ici et ne le fera pas pour vous.
la source
Cette solution fonctionne pour moi.
Comme j'ai copié plusieurs éléments du projet que j'ai développé dans Xcode 5 dans Xcode 6 et que le storyboard de Xcode 6 prend en charge plusieurs mises en page, pour chaque contrainte, je dois l'installer dans la configuration actuelle.
Par exemple, j'utilise "Largeur compacte | Hauteur régulière", pour la contrainte que je dois définir comme ci-dessous:
Après avoir vérifié et défini toutes les centaines de contraintes dans mes projets, nettoyées et compilées, les avertissements disparaissent enfin.
la source
Installed
cases à cocher embêtantes dans vos attributs d'objet de vue. Assurez-vous donc que la case à cocher correcte des objets de vue que vous pensez être affichés est cochée. L'avertissement vous indique que certains objets ne sont pas affichés dans lecurrent configuration
.Je voulais juste ajouter mon cas comment cette erreur s'est produite pour moi: Dans mon cas, je voulais supprimer un champ de texte avec "Cmd + Backspace". Je l'ai fait directement dans l'arborescence de Scene-Builder:
Vous pouvez voir que le champ snooze est grisé.
Cela a donc été facilement découvert pour moi. Vous pouvez simplement supprimer le champ en sélectionnant:
Modifier-Supprimer du menu
Étonnamment - cela supprime vraiment le champ (y compris les contraintes). Peut-être que cela aide quelqu'un à trouver facilement la cause de cet avertissement ennuyeux ...
la source
Explication développée
Rien de mal avec les autres réponses. Je voulais juste attirer l'attention sur le libellé de l' avertissement d'origine et identifier quelques cas d'utilisation où cela peut apparaître dans le flux de travail.
Cela signifie qu'un élément (généralement un contrôle ou une vue personnalisée normalement visible) référencé dans une ou plusieurs contraintes est désactivé (désactivé ou a la case à cocher «installé» décochée). Si, par exemple, vous décidez que vous souhaitez déplacer un contrôle ou une vue dans votre storyboard en dehors de la vue principale (ou vous pouvez voir parfois lorsque vous faites quelque chose d'intéressant dans les classes de taille), vous pouvez voir cet avertissement si le contrôle a des contraintes qui lui sont attachées .
Avec la solution recommandée:
Deux approches pour corriger
Plan du document
Visuellement, vous pouvez ouvrir le plan du document dans votre storyboard et rechercher les contraintes grisées qui font référence à votre contrôle / vue assis en dehors de la vue principale (élargissez le contour, cliquez sur la contrainte et affichez l'inspecteur d'attributs, souris vers le bas pour examiner rapidement) . Supprimez ensuite la contrainte de ce contexte (classe de taille). Par exemple, dans mon cas, je tiens simplement le contrôle jusqu'à ce que je décide plus tard où le présenter, j'ai donc choisi de supprimer complètement la contrainte incriminée jusqu'à plus tard. Mais dans une classe de taille, je désinstallerais simplement la contrainte du contexte actuel en utilisant la case à cocher installée dans l'inspecteur d'attributs.
Navigateur de journaux / outil de recherche
On peut également continuer à utiliser le navigateur de journal pour trouver le contrôle du problème via l'identifiant unique donné à chaque objet sur le storyboard. Dans le journal, ce serait juste avant le texte surligné en jaune et prend généralement la forme comme indiqué dans mon exemple ci-dessus: jvj-mY-DHf
En utilisant l'identifiant, on peut ensuite utiliser l'outil de recherche dans Xcode pour localiser et supprimer (complètement) ou désinstaller (pour le contexte actuel) la contrainte incriminée.
Si vous aimez Xml et sa simplicité, vous pouvez également simplement ouvrir le Storyboard en tant que code source et trouver l'identifiant unique incriminé et supprimer le bloc approprié de xml.
la source
Une des raisons pour lesquelles cela pourrait arriver est que vous avez sélectionné une classe de taille non compatible avec vos contraintes (
wAny hAny
c'est un cas courant). Dans ce cas, sélectionnez simplement une classe de taille différente dans Interface Builder et vous avez terminé.la source
Pour moi, cela arrive si je donne à un objet une nouvelle contrainte sur objet (pas vue) avec l'option "Contrainte aux marges" non cochée. Problème résolu en cochant l'option (qui est par défaut).
la source
Ce qui a fonctionné pour moi (et je ne sais pas pourquoi) est de désactiver "Utiliser les variations de traits", puis d'effectuer un nettoyage, puis de les réactiver. La prochaine version n'avait aucun avertissement.
Pour désactiver «Utiliser les variations de traits», sélectionnez simplement votre storyboard dans le navigateur de projet, puis sélectionnez l'inspecteur de fichiers.
Ensuite, désélectionnez simplement «Utiliser les variations de trait», effectuez un nettoyage net en appuyant sur Shift-CMD K, puis réactivez les variations de trait si vous souhaitez les utiliser.
la source
Je pensais que c'était une contrainte persistante en raison de l'autre réponse, mais c'était dû à un `` débouché '' que j'avais encore pour un élément que j'avais supprimé auparavant. Que faire est:
Dans le pire des cas, vous supprimez toutes vos prises et vous les reconnectez. Cas résolu!
la source
Comme mentionné et bien guidé dans la réponse de @ BadCat , j'ai suivi les étapes et juste un pas de plus que j'ai osé franchir!
Étapes à suivre après la dernière étape de la réponse BadCats:
Étape 1:
J'ai sélectionné la contrainte dans Interface Builder, puis en gardant cela à l'esprit à quoi elle sert, puis je l'ai supprimée.
Étape 2
Construisez le projet XCode et il vous montrera peut-être que le nombre d'avertissements est augmenté. C'est parce que vous avez supprimé une contrainte dont il a besoin pour bien se compiler. Alors, passez à la 3e étape!
Étape 3
Ajoutez à nouveau la contrainte que vous avez gardée à l'esprit (celle que vous avez supprimée). Et puis reconstruisez-le à nouveau!
Pour moi, les avertissements sont partis rien qu'en faisant cela! Je suppose que cela fonctionnera pour certaines personnes!
Cause:
Comme je pouvais comprendre le problème qui a causé cet avertissement était, j'avais un Label connecté à un IBOutlet, mais son nom commençait par une majuscule. Je l'ai donc renommé avec une simple lettre dans le ViewController et suis venu le changer dans l'IB. J'ai supprimé IBOutlet passé et suis allé le connecter au nom de propriété nouvellement renommé et connecté. Ensuite, j'ai remarqué qu'il y avait un nouvel avertissement.
J'ai d'abord essayé la réponse suivante dans ce fil, mais cela n'a pas aidé!
À votre santé!
la source
Mon cas est de choisir le libellé, puis cliquez sur contrôle + X, ce sera désactivé, mais je ne fais rien avec. Lorsque je construis, il affichera un avertissement. Solution: supprimer l'étiquette ou supprimer le contrôle choisi + X pour l'étiquette.
la source
Je supprime tous ces éléments de l'interface utilisateur, y compris leurs contraintes, et les ajoute à nouveau, ces avertissements disparaissent tout simplement. Quoi qu'il en soit, c'est la pire façon mais utile de résoudre ce problème.
la source
J'ai eu le problème sur une vue de pile. Supprimer les contraintes et les rajouter n'a pas aidé. Le nettoyage et la reconstruction n'ont pas aidé.
Pour moi, la solution était de créer un tout nouvel objet de vue de pile.
Déplacez ensuite tous les éléments de l'ancienne vue de pile vers la nouvelle vue de pile.
La suppression de l'ancienne vue de la pile a résolu le problème.
la source