Ich weiß UIKit
verwendet CGFloat
wegen des auflösungsunabhängigen Koordinatensystems.
Aber jedes Mal, wenn ich prüfen will, ob zum Beispiel frame.origin.x
es 0
Das macht mich krank:
if (theView.frame.origin.x == 0) {
// do important operation
}
Ist nicht CGFloat
anfällig für falsch-positive Ergebnisse beim Vergleich mit ==
, <=
, >=
, <
, >
? Es handelt sich um eine Fließkommazahl und sie haben Ungenauigkeitsprobleme: 0.0000000000041
zum Beispiel.
Ist Objective-C
dies intern beim Vergleich behandeln oder kann es vorkommen, dass ein origin.x
die sich als Null liest, wird nicht mit 0
als wahr?