2014-04-17 6 views
1

Je reçois cet avertissement quand j'ouvre le code dans Xcode 5.1
« Les valeurs de type « NSInteger » ne doivent pas être utilisés comme arguments de format, ajouter un casting explicite à « long » à la place » Pourquoi nous devons lancer NSInteger dans longtemps?Xcode 5 erreur de types de valeur

Répondre

3

Vous obtenez cet avertissement si vous compilez sur iOS (64 bits), car sur cette plate-forme NSInteger est définie comme long et est un entier de 64 bits. Le format% i, d'autre part, est pour int, qui est de 32 bits. Donc, le format et le paramètre réel ne correspondent pas en taille.

Depuis NSInteger est 32 bits ou 64 bits, en fonction de la plate-forme, le compilateur recommande d'ajouter un casting à longue en général.

Mise à jour: Depuis iOS 7 prend en charge 64 bits maintenant aussi bien, vous pouvez obtenir le même avertissement lors de la compilation pour iOS.