NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
Le code ci-dessus produit une erreur:
Les valeurs de type «NSInteger» ne doivent pas être utilisées comme arguments de format; ajoutez plutôt une distribution explicite à 'long'
Le NSLog
message corrigé est en fait NSLog(@"%lg", (long) myInt);
. Pourquoi dois-je convertir la valeur entière de myInt
en long
si je veux que la valeur s'affiche?
NSInteger
n'est pas long), mais il semble que vous compiliez avec la cible OS X (où NSInteger
est long
).
NSLog(@"%ld", (long) myInt);
, lelong
casting est de faire correspondre lel
qualificatif de%ld
, mais tout cela est inutile carNSLog(@"%d", myInt);
c'est suffisant (étant donné que nous pouvons voir que cemyInt
n'est pas le caslong
. En bout de ligne, vous lancezmyInt
si vous utilisez un qualificatif long au format chaîne, mais pas besoin d'utiliser le qualificatif de format de chaîne longue ou delong
transtyper ici.