94 votes

Comment faire pour convertir Un NSInteger à un int?

Par exemple lors du passage d'un value message à un NSInteger exemple comme

[a value] il provoque une EXC_BAD_ACCESS.

Alors, comment convertir un NSInteger de int?

Si elle est pertinente, qu'un petit nombre < 32 sont utilisés.

201voto

Dave DeLong Points 156978

Ta da:

NSInteger myInteger = 42;
int myInt = myInteger;

NSInteger n'est rien de plus qu'un 32/64 bits int. (il va utiliser la taille appropriée en se fondant sur quel système d'exploitation/plateforme, vous êtes en cours d'exécution)

28voto

Samuel Clay Points 597

Si vous voulez le faire à la volée, juste lancer l' NSUInteger ou NSInteger d'un int:

int i = -1;
NSUInteger row = 100;
i > row // true, since the signed int is implicitly converted to an unsigned int
i > (int)row // false

18voto

Abizern Points 52378

Je ne suis pas sûr au sujet des circonstances où vous avez besoin de convertir un NSInteger d'un int.

NSInteger est juste un typedef:

NSInteger Utilisé pour décrire un entier indépendamment de savoir si vous êtes en bâtiment pour une version 32 bits ou 64 bits du système.

#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 
typedef long NSInteger;
#else
typedef int NSInteger;
#endif

Vous pouvez utiliser NSInteger tout endroit où vous utilisez un int sans le convertir.

0voto

grominet Points 1

Couramment utilisé dans les UIsegmentedControl, "erreur" apparaît lors de la compilation en 64 bits au lieu de 32 bits, de la manière la plus facile pour ne pas le transmettre à une nouvelle variable est d'utiliser cette astuces, ajouter (int):

[_monChiffre setUnite:(int)[_valUnites selectedSegmentIndex]];

au lieu de :

[_monChiffre setUnite:[_valUnites selectedSegmentIndex]];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X