Vous n'avez pas à jeter pour rien si votre spécificateurs de format correspondent à vos types de données. Voir Martin R réponse pour lesquels les types natifs NSInteger
est défini comme.
Donc, sur OS X 64 bits, vous pouvez écrire votre journal de ce type de déclarations:
NSLog(@"%ld", myInt);
alors que sur iOS, vous pouvez écrire:
NSLog(@"%d", myInt);
et ce sera sans moulages.
L'une des raisons d'utiliser des moulages de toute façon, au moins dans le non-code de l'INTERFACE utilisateur, c'est que le code de bonne tend à être porté sur les plates-formes, et si vous avez jeté votre explicitement les variables de compiler proprement sur les versions 32 et 64 bits:
NSLog(@"%ld", (long)myInt);
Ce sera également aider votre iOS code dans une transition vers le 64 bits, faut-il jamais venu à iOS. Ou quand iOS et OS X sont fusionnés ensemble, en bas de la ligne.
Et de l'avis cela ne va pas juste pour NSLog déclarations, qui sont juste de débogage sida après tout, mais aussi pour [NSString stringWithFormat:]
et les amis, qui sont légitimes des éléments de code de production.