Eliminer warning: comparison of unsigned expression >= 0 is always true
Bonjour,
Comment se débarrasser de cet encombrant warning: comparison of unsigned expression >= 0 is always true
Il apparaà®t dans Xcode 4 (en fait je n'ai pas essayé avec le 3) et le code d'Apple ImageKitDemo ce qui est d'autant plus frustrant !
De fait je ne vois pas trop comment triturer le code pour éviter ça ?
(En espérant que "Trucs et astuces" est le bon endroit pour poser la question)
Comment se débarrasser de cet encombrant warning: comparison of unsigned expression >= 0 is always true
Il apparaà®t dans Xcode 4 (en fait je n'ai pas essayé avec le 3) et le code d'Apple ImageKitDemo ce qui est d'autant plus frustrant !
<br /> NSRange r = [aKeyword rangeOfString:search options:NSCaseInsensitiveSearch];<br /> return (r.length>0 && r.location>=0);<br />
De fait je ne vois pas trop comment triturer le code pour éviter ça ?
(En espérant que "Trucs et astuces" est le bon endroit pour poser la question)
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Souvent oui alors je fais un "cast" et ça passe, mais là non, c'est pour prévenir que un NSUinteger sera toujours supérieur ou égal à zéro.
Du coup je l'ai casté aussi et ça passe.
Merci
"De la discussion jaillit la lumière"
r.location>=0 est tjrs vrai == WARNING
il faut donc ecrire
Et pourtant c'est du code Apple.
Mais finalement je ne sais pas ce qui vaut le mieux: si je fais un "cast" en NSInteger de mon `NSUInteger et que celui ci est NSNotFound qui correspond lui à donc -1 repassé en entier signé, ce qui serait très bien et peut être ce qu'ils avaient voulu mettre, pour le cas (improbable) ou length serait > 0 quand location serait à NSNotFound (ceinture et bretelles) ?
rangeOfString:options:
Return Value
An NSRange structure giving the location and length in the receiver of the first occurrence of aString, modulo the options in mask. Returns {NSNotFound, 0} if aString is not found or is empty (@";").
donc aucun cast
return (r.location != NSNotFound && r.length>0); // r.lenght>0 utile dans le cas (@";").
Yep