CGpoint Vs CGPointMake

Недавно я был представлен быстро.

Вопрос, когда использовать CGPoint и когда использовать CGPointMake?

Я переплел эти два оператора, и оба они вернули тот же результат

 self.anchorPoint  = CGPointMake(0.5, 0.5)

 self.anchorPoint  = CGPoint(0.5, 0.5)

Спасибо

Ответ 1

Каждая структура в Swift получает автоматически созданный членский инициализатор. Итак, поскольку struct CGPoint существует с членами x и y, вы можете сделать:

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

(Обратите внимание, что вы действительно не можете сделать CGPoint(0.5, 0.5) -, который получает ошибку компиляции, потому что инициализаторы требуют ярлыков для всех параметров, кроме тех случаев, когда объявлено иначе.)

В Swift 1.x-2.x, CGPointMake была функцией, импортированной из версии C этого API. В Swift 3 форма инициализатора является единственным способом создания CGPoint - это одно из изменений, чтобы сделать CoreGraphics много более Swifty.

Ответ 2

Когда вы нажмете cmd на тип Xcode, откроется файл с определением.

CGPoint - это struct:

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

и CGPointMake - это просто функция, которая создает CGPoint и возвращает ее:

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