CGFloatについての注意点

iOSの開発をしていると頻繁に出てくるCGFloat。

例えば、UIViewframe.size.heightなんかもこの型です。

この型と通常の数値を比較する際のキャストには気を使う必要があります。

というのも、CGFloatはiPhone5以前は内部的にはfloat実装だったものが、iPhone5S以降(要するに64bitのiPhone)ではDouble実装になっているからです。

数値の比較をするには、

let maxHeight = CGFloat(100)
if(maxHeight>size.height) {
 ...

のように、比較先の数字をCGFloatに変換する必要があります。

参考

本当は怖いCGFloat