2009-10-03 4 views
1

Lorsque vous utilisez une méthode iPhone Objective C qui accepte CGFloat s, par ex. [UIColor colorWithRed:green:blue:], est-il important d'ajouter un f à des arguments constants pour les spécifier explicitement comme flottants, par ex. devrais-je toujours taper 0.1f plutôt que 0.1 dans de tels cas? Ou le compilateur lance-t-il automatiquement 0.1 (qui est un double en général) à 0.1f (qui est un flottant) au moment de la compilation? Je ne souhaite pas que ces moulages se produisent au moment de l'exécution, car ils pourraient irriter les performances.Utilisation de CGFloats iPhone/Objective C: 0,1 est-il correct ou devrait-il être 0,1f?

Merci à l'avance

MrMage

Répondre

2

Ce n'est pas importante; il ne casse rien pour utiliser une constante à double précision où une constante à une seule précision est attendue. Cependant, si vous avez activé l'avertissement relatif aux conversions implicites de 64 bits à 32 bits et que vous développez des architectures 32 bits (ce qui comprend, je crois, l'iPhone), vous devez utiliser un seul des constantes de précision simplement pour éviter d'avoir cet avertissement.

(Vous pouvez également définir explicitement ce paramètre sur Désactivé, avec une condition d'architecture qui l'active pour les architectures 64 bits, mais que actuellement est important uniquement si vous utilisez également une partie de votre code dans une application Mac

+0

Je sais que rien ne casse, mais quand la conversion du double au flottant se produit-elle? Au moment de la compilation (serait bien) ou au moment de l'exécution (alors j'ajouterais les f)? – MrMage

+4

Au moment de la compilation – philsquared

+0

Merci. Votre commentaire est la vraie réponse à ma question. +1 – MrMage

Questions connexes