web-dev-qa-db-fra.com

Comment convertir la valeur NSInteger en valeur int dans l'objectif C?

Comment convertir la valeur NSUInteger en valeur int dans objectiveC?

et aussi comment imprimer la valeur de NSUInteger dans NSLog, j'ai essayé %@,%d,%lu ceux-ci ne fonctionnent pas et ne lancent pas Ex-Bad Access erreur.

Merci

26
GR.
NSUInteger intVal = 10;
int iInt1 = (int)intVal;
NSLog(@"value : %lu %d", (unsigned long)intVal, iInt1);

pour plus de référence, regardez ici

73
Girish

Distribution explicite en int

NSUInteger foo = 23;
int bar = (int)foo;

Bien que

NSLog(@"%lu",foo);

fonctionnera bien sur les versions actuelles d'OSX. Ce n'est pas sûr, car NSUInteger est tapé comme non signé int sur d'autres versions. Tels que iOS. La réponse stricte est de le lancer en premier:

NSLog(@"%lu",(unsigned long)foo);
3
Steve Waddicor

Salut tout ça marche pour moi ...

J'ai essayé ça ..

NSUInteger  inbox_count=9;
NSLog(@"inbox_count=%d",(int)inbox_count);

//output   
inbox_count=9

merci à tous ..

1
GR.

C'est aussi simple que ça,

NSUInteger uintV = 890;
int intVal = (int) uintV;
NSLog(@"the value is : %lu", (unsigned long)intVal);


cela imprimera quelque chose comme ça,
la valeur est: 89