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 NSLogmessage corrigé est en fait NSLog(@"%lg", (long) myInt);. Pourquoi dois-je convertir la valeur entière de myInten longsi je veux que la valeur s'affiche?  
NSIntegern'est pas long), mais il semble que vous compiliez avec la cible OS X (où NSInteger est long ).
                
NSLog(@"%ld", (long) myInt);, lelongcasting est de faire correspondre lelqualificatif de%ld, mais tout cela est inutile carNSLog(@"%d", myInt);c'est suffisant (étant donné que nous pouvons voir que cemyIntn'est pas le caslong. En bout de ligne, vous lancezmyIntsi vous utilisez un qualificatif long au format chaîne, mais pas besoin d'utiliser le qualificatif de format de chaîne longue ou delongtranstyper ici.