J'ai un int currentFontSize où je veux comparer avec NSString stocké dans un tableau C, voici le code. La partie strage est, val me donner une valeur de retour de 1879919632, ce qui rend ma comparaison échouée. La partie étrange est quand je hardcode le NSString comme val2 = @ "22", la comparaison devient réussie où val2 est: 4240, il est le même que:int stringWithFormat à NSString valeur de retour
NSLog(@"fontSizeNAme:%d",fontSizeName[i]);
ici est mon retour à NSLog:
2010-11-18 16:56:52.784 testINT[26034:a0f] the current font size is 22
2010-11-18 16:56:52.786 testINT[26034:a0f] the current font Value1 is 1879919632
2010-11-18 16:56:52.787 testINT[26034:a0f] the current font Value2 is 4240
2010-11-18 16:56:52.788 testINT[26034:a0f] fontSizeNAme:4176
2010-11-18 16:56:52.788 testINT[26034:a0f] val:1879919632
2010-11-18 16:56:52.788 testINT[26034:a0f] the fontSizeSegmentID is: 32767
2010-11-18 16:56:52.789 testINT[26034:a0f] fontSizeNAme:4208
2010-11-18 16:56:52.789 testINT[26034:a0f] val:1879919632
2010-11-18 16:56:52.790 testINT[26034:a0f] the fontSizeSegmentID is: 32767
2010-11-18 16:56:52.790 testINT[26034:a0f] fontSizeNAme:4240
2010-11-18 16:56:52.790 testINT[26034:a0f] val:1879919632
2010-11-18 16:56:52.791 testINT[26034:a0f] the fontSizeSegmentID is: 32767
2010-11-18 16:56:52.791 testINT[26034:a0f] fontSizeNAme:4272
2010-11-18 16:56:52.791 testINT[26034:a0f] val:1879919632
2010-11-18 16:56:52.792 testINT[26034:a0f] the fontSizeSegmentID is: 32767
2010-11-18 16:56:52.792 testINT[26034:a0f] fontSizeNAme:4304
2010-11-18 16:56:52.792 testINT[26034:a0f] val:1879919632
2010-11-18 16:56:52.793 testINT[26034:a0f] the fontSizeSegmentID is: 32767
2010-11-18 16:56:52.793 testINT[26034:a0f] fontSizeNAme:4336
2010-11-18 16:56:52.794 testINT[26034:a0f] val:1879919632
2010-11-18 16:56:52.794 testINT[26034:a0f] the fontSizeSegmentID is: 32767
Quelqu'un peut-il me dire pourquoi? pourquoi je jette le @ "22" NString et le un formulaire int renvoie une valeur différente ????? Merci!
En fait, le programme fera une comparaison entre le 'int' et le pointeur vers votre objet Obj-C, ce qui est tout à fait valide, il vous donnera juste un résultat non-sens. –
Je crois que c'est ce que j'ai dit. –
@Michael Eakins: Quoi que vous croyiez, ce n'est pas ce que vous avez dit. Vous avez dit "vous allez probablement vous retrouver avec un nombre sauvage en cours d'exécution dans un tampon système ... ou ... une exception hors de portée". Aucun de ceux-ci n'arrivera si vous comparez un pointeur à un int. – JeremyP