CGPoint()とCGPointMake()はなにが違うの?
CGPoint()はinitメソッドではなくstructの初期化であり、CGPointMake()はそのstructの初期化を行うだけのメソッドです。
簡単に言うと、
- CGPoint()は
構造体
- CGPointMake()は
メソッド
です。
じゃあ、どっちを使えばいいんだ?
一般的にCGPoint()を使うのが主流となっています。
ここから下は興味本意なので見なくてもいいです。
CGPointMake()メソッドはどこで定義されているのか気になったので調べた
Ruby思考なぼくは最初、CGPointのオブジェクトを生成するためのメソッドだからCGPointクラスの中に定義されている?と思った。しかし、CGPointは構造体だからメソッドが定義されているはずがない!
じゃあ、どこで定義されているんだ?
CoreGraphicsを継承したCGGeometryというところに定義されていました。
さきほど、構造体だからメソッドが定義されているはずがないと言いましたが、 SwiftはC言語と違って構造体にプロパティだけでなくメソッドも定義できるらしいです。
構造体はプロパティも、メソッドも定義できる。じゃあ、クラスとは何が違うんだ!!?
長くなりそうなので別の記事で説明します。