Pergunta

[Posso estar entendendo mal todo esse tópico, pois cresci com linguagens que permitem ao desenvolvedor ignorar quase totalmente a arquitetura do processador, como Java, exceto em alguns casos específicos. Por favor, corrija-me se eu tiver alguns conceitos errados.]

Leitura aqui parece que o conselho é usar CGFloat em vez de, digamos, float, porque ele prepara meu código para diferentes arquiteturas de processador (os identificadores de 64 bits flutuam de maneira diferente).Supondo que isso esteja certo, então por que UISlider, por exemplo, use float diretamente (pelo valor)? Não seria errado (ou algo assim) eu ler seus float e convertê-lo em um CGFloat, porque de qualquer forma meu código não está certo se a arquitetura mudar mesmo assim?

Foi útil?

Solução

CGFloat é apenas um typedef para float.Isto proporciona flexibilidade para CGFloat ser algo diferente no futuro.É por isso que usá-lo prepara seu código para o futuro.Objective-C faz isso com muitos tipos, NSInteger é outro exemplo.

Embora possam ser usados ​​de forma intercambiável, concordo que isso não aparece no caso de UISlider que a Apple era alimentação para cães.

Outras dicas

CGFloat faz parte do Core Graphics e é usado para coisas como valores de pixel, que mudaram muito ao longo dos anos (alguém aqui é amante do TRS-80?).Portanto, é aconselhável usar CGFloat para valores de desenho relacionados à exibição.

O valor do controle deslizante não está relacionado a gráficos.É simplesmente 0,0 a 1,0, que pode ser tratado com precisão por um float, e provavelmente um float de 16 bits.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top