Frage

[Möglicherweise missverstehe ich das gesamte Thema, da ich mit Sprachen aufgewachsen bin, die es dem Entwickler ermöglichen, die Prozessorarchitektur, wie etwa Java, außer in einigen besonderen Fällen, fast vollständig zu ignorieren. Bitte korrigieren Sie mich, wenn ich einige der Konzepte falsch habe.]

Lektüre Hier Es scheint, dass der Rat darin besteht, CGFloat anstelle von beispielsweise Float zu verwenden, da dies meinen Code für verschiedene Prozessorarchitekturen zukunftssicher macht (64-Bit behandelt Float unterschiedlich).Angenommen, das ist richtig, warum dann? UISlider, zum Beispiel, verwenden float direkt (für den Wert)? Wäre es nicht falsch (oder so), wenn ich sie lese? float und konvertieren Sie es in a CGFloat, weil mein Code auf jeden Fall nicht stimmt, wenn sich die Architektur trotzdem ändert?

War es hilfreich?

Lösung

CGFloat ist nur ein typedef für float.Dies bietet Flexibilität für CGFloat um später etwas anderes zu sein.Aus diesem Grund ist Ihr Code dadurch zukunftssicher.Objective-C macht dies mit vielen Typen, NSInteger ist ein weiteres Beispiel.

Obwohl sie austauschbar verwendet werden können, stimme ich zu, dass dies im Fall von nicht der Fall ist UISlider dass Apple war Hundefutter.

Andere Tipps

cgfloat ist Teil der Kerngrafiken und wird für Dinge wie Pixelwerte verwendet, die sich im Laufe der Jahre stark verändert hat (jeder hier ein TRS-80-Liebhaber?).Also wird mit CGFLOAT für displaybezogene Zeichnungswerte empfohlen.

Der Wert des Schiebereglers ist nicht grafikbezogen.Es ist einfach 0,0 bis 1,0, was präzise von einem Schwimmer gehandhabt werden kann, und wahrscheinlich ein 16-Bit-Schwimmer dabei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top