Question

[Je comprends peut-être mal tout ce sujet, car j'ai grandi avec des langages qui permettent au développeur d'ignorer presque entièrement l'architecture du processeur, comme Java, sauf dans certains cas particuliers. Veuillez me corriger si certains concepts sont erronés.]

En lisant ici il semble que le conseil soit d'utiliser CGFloat au lieu, disons, float, car cela pérennise mon code pour différentes architectures de processeur (les poignées 64 bits flottent différemment).En supposant que c'est vrai, alors pourquoi UISlider, par exemple, utilisez float directement (pour la valeur) ? Ne serait-ce pas une erreur (ou quelque chose du genre) de ma part de lire leur float et convertissez-le en un CGFloat, parce que de toute façon mon code n'est pas bon si l'architecture change quand même ?

Était-ce utile?

La solution

CGFloat est juste un typedef pour float.Cela offre une flexibilité pour CGFloat être quelque chose de différent sur la route.C'est pourquoi son utilisation assure la pérennité de votre code.Objective-C fait cela avec de nombreux types, NSInteger est un autre exemple.

Bien qu'ils puissent être utilisés de manière interchangeable, je conviens que cela n'apparaît pas dans le cas de UISlider qu'Apple était nourriture pour chiens.

Autres conseils

CGFloat fait partie de Core Graphics et est utilisé pour des choses comme les valeurs de pixels, qui ont beaucoup changé au fil des ans (quelqu'un ici est-il amateur du TRS-80 ?).Il est donc conseillé d'utiliser CGFloat pour l'affichage des valeurs de dessin liées.

La valeur du curseur n'est pas liée au graphique.Il s'agit simplement de 0,0 à 1,0, qui peut être géré avec précision par un flottant, et probablement un flottant de 16 bits en plus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top