Использовать CGFloat вместо float?Они этого не делают
-
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-битное значение с плавающей точкой.