Je vais avoir tout à coup une étrange erreur et reproductible lors de l'utilisation d'une classe @IBDesignable, les propriétés sont @IBInspectable donne l'avertissement suivant:@IBDesignable - @IBInspectable, valeur clé de classe non conforme codage
Main. storyboard: avertissement: IB Designables: Ignorer l'attribut d'exécution défini par l'utilisateur pour le chemin clé "test" sur l'instance de "UIButton". Hit une exception lors de la tentative de définition de sa valeur: [setValue: forUndefinedKey:]: cette classe n'est pas compatible avec le codage de valeur de clé pour le test de clé.
Pour être clair cet avertissement est seulement un problème dans Xcode, il empaquette bien. Toujours agaçant!
Étapes pour reproduire
- Créer un nouveau projet
Créer une sous-classe personnalisée @IBDesignable UIButton, avec une @IBInspectable propriété Chaîne:
import UIKit @IBDesignable class TempButton: UIButton { @IBInspectable var test:String = "" }
- Faites glisser un bouton vers un contrôleur de vue dans le storyboard et attribuez-lui la classe personnalisée "TempButton" dans l'inspecteur d'identité.
- Maintenant, l'attribut 'Test' devrait apparaître dans l'inspecteur d'attributs pour les propriétés 'Temp Button' - tapez n'importe quoi dans ce champ.
- Bam! L'avertissement ci-dessus apparaît. Supprimez le texte du champ et l'avertissement disparaît.
J'ai essayé plusieurs solutions - différents noms de variables, ce qui rend la propriété « test » en option, en utilisant un initialiseur, pas de chance jusqu'à présent.
Voici une capture d'écran du problème:
Très intéressant et je ne peux pas reproduire le problème. J'ai fait exactement ce que tu as dit. Pas d'avertissement. Quelle version de Xcode utilisez-vous? Avez-vous pensé à _build_ l'application en premier? Avez-vous essayé de redémarrer l'ordinateur (aide à claquer Xcode sur le côté de la tête)? – matt
J'ai claqué Xcode sur le côté de la tête (c'est-à-dire redémarré!), Et je l'ai essayé à la fois sur la version actuelle de Xcode (7.0.1) et la beta (7.1 beta 3), pas de chance. Merci d'avoir regardé cela, intéressant que cela ne se passe pas pour vous. –
Avoir ajouté une capture d'écran pour aider à diagnostiquer le problème, si d'autres personnes ne sont pas en mesure de répliquer. –