Domanda

[Potrei essere fraintendere questo intero argomento, come sono cresciuto con le lingue che consentono al Dev di ignorare quasi interamente l'architettura del processore, come Java, tranne in alcuni casi particolari. Si prega di correggermi se ho dei concetti sbagliati. ]

Lettura qui Sembra che il consiglio siaUsa CGFloat anziché, ad esempio, galleggiare, perché le prove future del mio codice per diverse architetture del processore (maniglie a 64 bit fluttono in modo diverso).Supponendo che sia giusto, allora perché UISlider, ad esempio, utilizzare direttamente float (per il valore)? Non sarebbe sbagliato (o qualcosa) per me per leggere il loro float e convertirlo in un CGFloat, perché in ogni caso il mio codice non è giusto se l'architettura cambia comunque?

È stato utile?

Soluzione

CGFloat è solo un typedef per float.Ciò fornisce flessibilità per CGFloat per essere qualcosa di diverso in fondo alla strada.Ecco perché usarlo prove future del tuo codice.Objective-C Fa questo con molti tipi, NSInteger è un altro esempio.

Sebbene possano essere utilizzati in modo intercambiabile, sono d'accordo sul fatto che non appaia nel caso di UISlider che Apple era dogfooding .

Altri suggerimenti

CGFLOAT è parte della grafica principale e utilizzata per cose come i valori dei pixel, che è cambiata notevolmente nel corso degli anni (chiunque qui un amante TRS-80?).Quindi, utilizzare CGFloat per i valori del disegno relativi al display.

Il valore del cursore non è correlato alla grafica.È semplicemente da 0,0 a 1,0, che può essere gestito con precisione da un galleggiante, e probabilmente un galleggiante a 16 bit a questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top