Lorsque je "construire et analyser" ce code dans Xcode, je reçois un avertissement que je ne comprends pas. Voici la méthode avec le problème: Voici l'avertissement: P> warning: The left operand of '/' is a garbage value
CGPoint relativePosition = CGPointMake(1.0-(location.x / self.bounds.size.width),location.y / self.bounds.size.height);
~~~~~~~~~~ ^
1 warning generated.
3 Réponses :
Il est difficile de dire sans voir toute la fonction, mais je prendrais cela pour dire qu'il existe un chemin d'accès au code de l'emplacement.x n'est jamais initialisé. Il se peut que le code ne prend jamais ce chemin dans vos tests, mais la possibilité est là. P>
Edit: Je vais prendre une femme sauvage ici et dire que c'est parce que [touche Touchs AnyObject] pourrait éventuellement retourner Essayez de faire le reste de la fonction conditionnelle sur nil code>. Dans quel cas
[touche emplacementInview: auto] code> retournera les ordures (rappelez-vous d'envoyer des messages à
nil code> est parfaitement valide). P>
(toucher! = nil) code>. P>
Je pensais dans les mêmes lignes. Qu'est-ce que le toucher défini comme?
J'ai élargi pour montrer toute la méthode. Pourrait-il être quelque chose à voir avec l'utilisation de [touche Touch Ownobject]?
Si Touch est nul, [Touch EmplacementIview:] retournera le résultat de la structure NIL, qui, avant qu'une version de LLVM ne garantit que la première [taille du pointeur] octets de la structure est mise à zéro et que le reste serait toujours ordures. p>
afaik [touche AnyObject] ne peut jamais être nul et l'avertissement est un faux positif. P>
L'opérande gauche de '/' est une valeur détruite, cela suggère de nous dire que cela doit donner une valeur initiale à l'emplacement.x, car [Touch EmplacementInview: auto] Peut-être que NIL doit donc faire un jugement si le SI (Touch ! = Nil) p>
S'il vous plaît coller une image montrant comment les flèches pointent là-bas.