¿Usar CGFloat en lugar de flotar?ellos no lo hacen
-
13-09-2020 - |
Pregunta
[Podría estar malinterpretando todo este tema, ya que crecí con lenguajes que permiten al desarrollador ignorar casi por completo la arquitectura del procesador, como Java, excepto en algunos casos particulares. Corríjame si tengo algunos conceptos incorrectos.]
Lectura aquí parece que el consejo es usar CGFloat en lugar de, digamos, float, porque prepara mi código para el futuro para diferentes arquitecturas de procesador (los identificadores de 64 bits flotan de manera diferente).Suponiendo que eso sea correcto, entonces ¿por qué UISlider
, por ejemplo, utilizar float
directamente (por el valor)? ¿No estaría mal (o algo así) que leyera sus float
y convertirlo en un CGFloat
, porque en cualquier caso mi código no es correcto si la arquitectura cambia de todos modos?
Solución
CGFloat
es solo un typedef
para float
.Esto proporciona flexibilidad para CGFloat
ser algo diferente en el futuro.Es por eso que usarlo prepara su código para el futuro.Objective-C hace esto con muchos tipos, NSInteger
es otro ejemplo.
Aunque se pueden usar indistintamente, estoy de acuerdo en que no aparece en el caso de UISlider
que Apple era comida para perros.
Otros consejos
cgfloat es parte de los gráficos básicos, y se usa para cosas como valores de píxeles, que ha cambiado mucho a lo largo de los años (¿alguien aquí un amante de TRS-80?).Por lo tanto, se aconseja el uso de CGFLOAT para los valores de dibujo relacionados con la pantalla.
El valor del control deslizante no está relacionado con los gráficos.Es simplemente 0.0 a 1.0, que se puede manejar con precisión por un flotador, y probablemente un flotador de 16 bits en ese.