Objectif C - Type Coulée De NSString à Int
J'ai ce petit morceau de l'Objectif du code C, où suis-je en jetant un NSString
à un int
:
NSString *a=@"123abc";
NSInteger b=(int) a;
NSLog(@"b: %d",b);
Et la NSLog
produit de cette sortie:
b: 18396
Quelqu'un peut-il m'expliquer pourquoi ce qui se passe?
J'étais sous l'impression du type de conversion d'une chaîne en un entier serait d'obtenir la valeur numérique de la chaîne.
- pour obtenir des valeurs numériques de la chaîne: stackoverflow.com/questions/4663438/...
Vous devez vous connecter pour publier un commentaire.
Vous avez integer valeur de pointeur de
NSString
objet. Pour analyser la chaîne de valeur entier que vous devez faire:Pour obtenir la valeur numérique d'utilisation :
ou pour
NSInteger
:Lorsque vous lancez un objet à un nombre entier, vous obtiendrez le pointeur vers l'adresse de la mémoire. Vous pouvez appeler à
[a integerValue]
pour obtenir la valeur de l'entier de la chaîne.Également lors de la coulée, il est préférable d'utiliser
NSInteger
en place deint
. Parce que lors de l'utilisation d'un système d'exploitation 64 bits unNSInteger
64 bits.Ou avec Objective-C littéraux syntaxe: