J'ai un certain nombre de spécificateurs de format de chaîne dans les appels de NSLog / NSAssert etc. qui utilisent %d
et %u
avec les types NSInteger (= int sur 32 bits)
et NSUInteger (= unsigned int sur 32 bits)
respectivement.
Lors de la conversion de l'application en 64 bits, cela génère des avertissements (bien sûr), car %ld %lu
est attendu pour ce qui est maintenant un type long
et unsigned long
.
Convertir simplement les spécificateurs de format introduira bien sûr les avertissements inverses dans la version 32 bits.
Donc la seule solution que je vois pour devenir sans avertissement est d'utiliser les spécificateurs 64 bits, et de caster vers les types de valeur 64 bits partout où un avertissement est donné dans la version 32 bits.
Mais je me demandais s'il existe peut-être des spécificateurs de format spécifiquement pour le type NSInteger
et NSUInteger
qui fonctionneraient sur les deux architectures sans cast?