user2725255
user2725255

Reputation: 121

CGpoint Vs CGPointMake

I have recently been introduced to swift.

A question, when to use CGPoint and when shall I use CGPointMake ?

I have interchanged these two statements and they both returned the same result

 self.anchorPoint  = CGPointMake(0.5, 0.5)

 self.anchorPoint  = CGPoint(0.5, 0.5)

Thanks

Upvotes: 12

Views: 12998

Answers (2)

rickster
rickster

Reputation: 126127

Every struct in Swift gets an automatically created member-wise initializer. So, because struct CGPoint exists with members x and y, you can do:

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

(Note that you can't actually do CGPoint(0.5, 0.5) -- that gets a compile error because initializers require labels for all parameters, except where otherwise declared.)

In Swift 1.x-2.x, CGPointMake was a function imported from the C version of this API. In Swift 3, the initializer form is the only way to create a CGPoint -- it's one of the changes to make CoreGraphics much more Swifty.

Upvotes: 18

zisoft
zisoft

Reputation: 23078

When you cmd-click on the type Xcode opens the file with the definition.

CGPoint is a struct:

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

and CGPointMake is just a function which creates a CGPoint and returns it:

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

Upvotes: 3

Related Questions