float 대신 CGFloat를 사용하시겠습니까?그들은 그것을하지 않습니다
-
13-09-2020 - |
문제
[저는 개발자가 특정 경우를 제외하고는 Java와 같은 프로세서 아키텍처를 거의 완전히 무시할 수 있는 언어로 성장했기 때문에 이 전체 주제를 오해했을 수도 있습니다. 제가 개념이 잘못된 부분이 있으면 바로잡아주세요.]
독서 여기 부동 소수점 대신 CGFloat를 사용하라는 조언이 있는 것 같습니다. 이는 다양한 프로세서 아키텍처에 대한 내 코드를 미래에 대비할 수 있기 때문입니다(64비트에서는 부동 소수점을 다르게 처리함).그것이 옳다고 가정하면, 왜 그럴까요? UISlider
, 예를 들어 다음을 사용하십시오. float
(가치에 대해) 직접적으로? 내가 그들의 글을 읽는 것은 잘못된 것(또는 뭔가)이 아닌가? float
그리고 그것을 CGFloat
, 어쨌든 아키텍처가 변경되면 내 코드가 올바르지 않기 때문입니까?
해결책
CGFloat
단지 typedef
~을 위한 float
.이는 다음에 대한 유연성을 제공합니다. CGFloat
길 아래에서 뭔가 다른 것이 될 것입니다.그렇기 때문에 이를 사용하면 코드가 미래에도 보장됩니다.Objective-C는 다양한 유형으로 이 작업을 수행합니다. NSInteger
또 다른 예입니다.
서로 바꿔서 사용할 수 있지만 다음의 경우에는 표시되지 않는다는 데 동의합니다. UISlider
그 애플은 개밥.
다른 팁
CGFloat는 Core Graphics의 일부이며 수년에 걸쳐 크게 변한 픽셀 값과 같은 것에 사용됩니다(여기에 TRS-80을 좋아하는 사람이 있습니까?).따라서 디스플레이 관련 도면 값에는 CGFloat를 사용하는 것이 좋습니다.
슬라이더의 값은 그래픽과 관련이 없습니다.이는 단순히 0.0에서 1.0까지이며 부동 소수점으로 정확하게 처리할 수 있으며 아마도 16비트 부동 소수점일 것입니다.