CGSize(width: 360, height: 480)
とCGSizeMake(360, 480)
同様の効果があるようです。どちらが優先されますか?違いはなんですか?
3 に答える
コンストラクターは、次のCGSize
Swift 拡張CGSize
です。
extension CGSize {
public static var zero: CGSize { get }
public init(width: Int, height: Int)
public init(width: Double, height: Double)
}
CGSizeMake
Objective-C からブリッジされた残りのインライン関数です。
/*** Definitions of inline functions. ***/
// ...
public func CGSizeMake(width: CGFloat, _ height: CGFloat) -> CGSize
どちらも Swift で同じ機能を持っています。CGSize
コンストラクターは、他のコンストラクターよりも "Swifty" であり、利便性のために提供されています。
機能としては違いはありませんが、CGSizeMake()
廃止予定です。書きやすく読みやすいCGSize()
ので、Apple はCGSize()
将来のために使用することを好みます。
したがって、ユーザビリティの側面の違いについて話している場合、 と の間に基本的な違いはありませCGSize()
んCGSizeMake()
。
ただし、この 2 つの間の構造的およびプログラム上の違いについて話している場合は、コード スニペットの構造と説明も示します。
CGSize()
struct CGSize { var width: CGFloat var height: CGFloat init() init(width width: CGFloat, height height: CGFloat) }
CGSizeMake()
func CGSizeMake(_ width: CGFloat, _ height: CGFloat) -> CGSize
説明:-
ここでの最初のケース、つまり、コードは、一般的に高さと幅を取り、物理的なサイズではなく距離ベクトルを表すCGSize()
構造であることを明確に示しています。CGFloat()
ベクトルとして、値は負になる可能性があります。
一方、 の場合CGSizeMake()
、構造ではなく関数であることが容易に理解できます。通常、高さと幅を取りCGFloat()
、構造体を返しますCGSize()
。
例:-
CGSize()
var sizeValue = CGSize(width: 20, height: 30) //Taking Width and Height
CGSizeMake()
var sizeValue = CGSizeMake(20,30) //Taking Width and Height too but without named parameters
純粋な迅速な使用の場合、コードCGSize()
は よりもはるかに単純で理解しやすいものになりCGSizeMake()
ました。上記の例からそれを得ることができます..!!!!
ありがとう、
これがお役に立てば幸いです。