Frage CGpoint Vs CGPointMake


Ich bin kürzlich zu swift eingeführt worden.

Eine Frage, wann ich CGPoint benutzen soll und wann soll ich CGPointMake benutzen?

Ich habe diese beiden Aussagen vertauscht und beide haben das gleiche Ergebnis zurückgegeben

 self.anchorPoint  = CGPointMake(0.5, 0.5)

 self.anchorPoint  = CGPoint(0.5, 0.5)

Vielen Dank


12
2017-08-21 17:25


Ursprung


Antworten:


Jede Struktur in Swift erhält einen automatisch erstellten Member-Wise Initializer. Weil struct CGPoint existiert mit Mitgliedern x und y, du kannst tun:

 self.anchorPoint  = CGPoint(x: 0.5, y: 0.5)

(Beachten Sie, dass Sie das nicht tun können CGPoint(0.5, 0.5) - Das ruft einen Kompilierungsfehler auf, da Initialisierer Beschriftungen für alle Parameter benötigen, sofern nicht anders angegeben.

In Swift 1.x-2.x, CGPointMake war eine Funktion, die von der C-Version dieser API importiert wurde. In Swift 3 ist das Initialisiererformular die einzige Möglichkeit zum Erstellen eines CGPoint - Es ist eine der Änderungen zu machen CoreGraphics viel mehr Swifty.


18
2017-08-21 17:57



Wenn Sie auf den Typ Xcode klicken, öffnet sich die Datei mit der Definition.

CGPoint ist eine Struktur:

struct CGPoint {
    var x: CGFloat
    var y: CGFloat
}

und CGPointMake ist nur eine Funktion, die ein erstellt CGPoint und gibt es zurück:

func CGPointMake(x: CGFloat, y: CGFloat) -> CGPoint

3
2017-08-21 17:36