Использовать CGFloat вместо float?Они этого не делают

StackOverflow https://stackoverflow.com/questions/3214135

  •  13-09-2020
  •  | 
  •  

Вопрос

[Возможно, я неправильно понимаю всю эту тему, поскольку я вырос на языках, которые позволяют разработчику почти полностью игнорировать архитектуру процессора, например Java, за исключением некоторых особых случаев. Пожалуйста, поправьте меня, если я неправильно понимаю некоторые понятия.]

Чтение здесь похоже, что совет состоит в том, чтобы использовать CGFloat вместо, скажем, float, потому что это в будущем проверяет мой код для разных процессорных архитектур (64-разрядные дескрипторы плавают по-разному).Предполагая, что это правильно, тогда почему это происходит UISlider, например, используйте float непосредственно (для значения)? Не было бы неправильно (или что-то в этом роде), если бы я прочитал их float и преобразовать его в CGFloat, потому что в любом случае мой код неверен, если архитектура все равно изменится?

Это было полезно?

Решение

CGFloat это просто typedef для float.Это обеспечивает гибкость для CGFloat чтобы в будущем стать чем-то другим.Вот почему его использование в будущем улучшает качество вашего кода.Objective-C делает это со многими типами, NSInteger вот еще один пример.

Хотя они могут использоваться взаимозаменяемо, я согласен, что в случае UISlider это яблоко было кормление собак.

Другие советы

CGFloat является частью Core Graphics и используется для таких вещей, как значения пикселей, которые сильно изменились за эти годы (кто-нибудь здесь любитель TRS-80?).ТАКИМ образом, рекомендуется использовать CGFloat для значений чертежа, связанных с отображением.

Значение ползунка не связано с графикой.Это просто значение от 0.0 до 1.0, которое может быть точно обработано с помощью значения с плавающей точкой, и, вероятно, при этом 16-битное значение с плавающей точкой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top