Question rapide - est-il possible de convertir un NSInteger en un objet NSNumber? J'ai besoin de convertir la balise d'un objet UIImageView en un objet NSNumber car je dois le passer comme argument à une fonction.
Vous ne pouvez pas cast car NSInteger
n'est pas un objet, juste un alias pour un type intégré. Vous pouvez toujours créer un nouvel objet NSNumber
à partir de NSInteger
, comme ceci:
NSNumber *myNum = @(myNsIntValue);
ou dans la version précédente du compilateur, utilisez
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
puisque Apple LLVM Compiler 4.0
, il existe un moyen plus simple de créer un objet NSNumber
:
NSNumber *x = @1234;
NSNumber *y = @(anIntegerVariable);
C'est la réponse la plus correcte et elle ne produira pas d'erreur inattendue.
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
Parce que le doc a dit:
"numberWithInteger: crée et renvoie un objet NSNumber contenant une valeur donnée, le traitant comme un NSInteger."
"numberWithInt: crée et renvoie un objet NSNumber contenant une valeur donnée, le traitant comme un entier signé."