XCode 4.6 m'a trouvé un bug...
Je viens de mettre à jour XCode, je compile et voilà qu'il me sort un warning de type "Semantic Issue". Et en effet, une ligne de code dans un if qui réalise un assignement (=) au lieux d'un ==.
Sympa.
Sympa.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
non, un if (foo = bar)
C'est pour ça que j'aime activer un maximum de warnings ils sont toujours plus utiles les uns que les autres ;-)
C'est cool que les diverses mises à jour de Xcode activent de plus de plus de ces warnings par défaut.
Ouais j'avoue que j'ai pas étudié à fond mes niveaux de warning. Bonne chose donc.
C'est juste que Xcode 4.6 doit sans doute l'activer maintenant par défaut (je sais pas, moi j'ai pris l'habitude d'activer la plupart des warnings sur mes projets pour m'assurer de faire du code de qualité et qu'il me prévienne de quasiment tout)
Ouip, y a mise à jour des warnings. Apparement c'est le seul truc où je suis passé à côté. Bonne idée d'avoir appliquer ça par défaut pour cette mise à jour.
Déjà qu'il y avait quelque Warning irrésolu dans mon code ....
Y'a de la doc sur le Warning ? Je sens que je vais en avoir besoin
Entièrement d'accord avec ça.
Il y a plein de warnings très intéressant à activer afin d'améliorer la qualité de son code et d'être alerté le plus tôt possible d'éventuels bugs.
Après suppression des "vrais" erreurs (défauts d'initialisatiin, et erreur du genre == au lieu de isEqualToString
J'ai trouvé plusieurs sujets sur ce problème sur StackOverflow, mais je ne comprends pas la solution... Ils ajoutent un espace entre les deux parametres ; chez moi cette solution ne change rien.
Avez vous une autre solution ?
Merci d'avance...
J'avais expliqué le problème dans ce post.
En gros si tu déclares un truc comme "-(void)setToto:(id) forTata:(id)tata" en oubliant de donner un nom au paramètre passé derrière "setToto:", alors en fait tu auras écrit une méthode nommée "setToto::" et non "setToto:forTata:" ! Et le "forTata" sera compris comme la variable dans laquelle sera stockée le premier paramètre (au lieu de faire partie du nom du selecteur), au même titre que le "tata" est la variable contenant le 2e paramètre... Bref pas du tout ce que tu veux.
Donc c'est cool si maintenant y'a ce warning, ça évite ce genre de boulette
Tu veux dire que tu déclarais tes méthodes du genre : ? Ce qui veut dire que ta méthode avait pour nom officiel "eatCat:::" ?
Si c'est ça oui c'est une très mauvaise pratique, question lisibilité c'est à éviter !
Je vais corriger ça de ce pas !!!
Ah, j'avais pas fait gaffe au nom de méthode de ton exemple !
C'était exactement çà . Et pour l'appel je faisais :
çà y est c'est corrigé, maintenant, j'ai :
Et plus de warning.
PS : c'est quoi le gage ? *retourne se cacher, toujours rouge de honte...*
Merci encore !
Participer à une manifestation de végétariens, en tenant une pancarte avec des images de chatons !
Edit : en fait, j'ai déjà passé plus de 4 heures à corriger tout mon code, çà suffit non ?
La seule question à laquelle cela ne répond pas, c'est de savoir si tu garde les poils ou pas lors de la dégustation... bien qu'avec "...killFirst:NO" j'imagine que oui
Entièrement d'accord.
En fait, quand j'ai créé la première méthode "multi-arguments", je m'étais dit "çà serait bien de pouvoir les nommer comme dans les 'méthode Apple'", et puis j'ai pensé que ce n'était probablement pas possible, et je n'ai pas cherché plus loin... Alors, à la place, je mettais des noms d'arguments "explicites"... Mais, c'est nettement mieux ainsi.
Quoique, dans certains cas (voir exemple plus haut), il eut peut-être mieux valu que certaines personnes ne comprennent pas l'utilité de certains arguments... Les représailles risquent d'être terribles !
Secret de cuisinière...
je ne me ferais jamais attraper